lazarus:导出中文内容到excel

来源:互联网 发布:条码数据采集器 编辑:程序博客网 时间:2024/04/29 11:52

引用

uses  ..., ComObj, ...
// 导出列表procedure TForm_luru.Button1Click(Sender: TObject);Var  sXm1, sDw1, sZhengshuId1: string;  XLApp: OLEVariant;  WorkBook: Variant;  Sheet1: Variant;  fName: variant;  dataRange: variant;  iRow, j: integer;  s: WideString;  //fName: string;begin XLApp := CreateOleObject('Excel.Application'); // requires comobj in uses try   XLApp.Visible := true;         // Hide Excel   XLApp.ScreenUpdating := true;   XLApp.DisplayAlerts := true;   fName := ExtractFilePath(ParamStr(0)) + 'muban_out\list.xlt';   WorkBook := XLApp.Workbooks.Open(fName);     // Open the Workbook   Sheet1 := XLApp.workBooks[1].WorkSheets[1];   PBar1.Max := ZROQuery_p_list.RecordCount;   PBar1.Min := 0;   PBar1.Position:=0;   iRow := 1;   ZROQuery_p_list.First;   while not ZROQuery_p_list.EOF do   begin     PBar1.Position := iRow;     // 序号     s := UTF8Decode(intTostr(iRow));     Sheet1.Cells[iRow + 7, 1].Value := s;     // 工作单位     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('GZDW').AsString));     Sheet1.Cells[iRow + 7, 2].Value := s;     // 姓名     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('xm').AsString));     Sheet1.Cells[iRow + 7, 3].Value := s;     // 性别     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('XB').AsString));     Sheet1.Cells[iRow + 7, 4].Value := s;     // 出生年月     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('CSNY').AsString));     Sheet1.Cells[iRow + 7, 5].Value := s;     // 现从事专业     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('CSZY').AsString));     Sheet1.Cells[iRow + 7, 6].Value := s;     // 原专业技术职务     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('YZYJSZW').AsString));     Sheet1.Cells[iRow + 7, 7].Value := s;     // 现专业技术职务资格     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('XZYJSZW').AsString));     Sheet1.Cells[iRow + 7, 8].Value := s;     // 资格证书编号     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('ZGZSBH').AsString));     Sheet1.Cells[iRow + 7, 9].Value := s;     // 评审时间     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('PSTGSJ').AsString));     Sheet1.Cells[iRow + 7, 10].Value := s;     // 公布时间     //s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('xm').AsString));     s := '';     Sheet1.Cells[iRow + 7, 11].Value := s;     // 公布文号     s := UTF8Decode(trim(ZROQuery_p_list.FieldByName('GBWH').AsString));     Sheet1.Cells[iRow + 7, 12].Value := s;     //Sheet1.Rows[iRow + 7].RowHeight := 30;     iRow := iRow + 1;     //if iRow > 50 then break;     ZROQuery_p_list.Next;   end;   //dataRange :=  Sheet1.Range['A' + intToStr(8) + ':L' + intToStr(iRow + 7)];   s := 'A8:L' + intToStr(iRow + 6);   dataRange :=  Sheet1.Range[s];   // 内部水平线型   dataRange.Borders[11].Linestyle := 6;  // xlContinuous   // 内部水平线宽   dataRange.Borders[11].Weight := 2; // 'xlHairline';   // 内部垂直线型   dataRange.Borders[12].Linestyle := 6;  // xlContinuous   // 内部垂直线宽   dataRange.Borders[12].Weight := 2; //'xlHairline';   dataRange.Borders[9].Linestyle := 6;   // 最下水平线型   dataRange.Borders[9].Weight := 2;        // 最下水平线宽   dataRange.Borders[1].Linestyle := 6; // 左边线型   dataRange.Borders[1].Weight := 2;      // 左边线宽   dataRange.Borders[2].Linestyle := 6; // 右边线型   dataRange.Borders[2].Weight := 2;      // 右边线宽   //Sheet1.Rows('8:' + intToStr(iRow + 6)).RowHeight := 25;   // 行高   s := intToStr(iRow + 6);   Sheet1.Rows('8:' + s).RowHeight := 25;   // 查询条件 -----------------------------   sXm1 := trim(EditXingming.Text);   sDw1 := trim(EditDanwei.Text);   sZhengshuId1 := trim(EditZhengshuhao.Text);   // 姓名   if sXm1 <> '' then     s := UTF8Decode('姓名:' + sXm1);   // 工作单位   if sDw1 <> '' then     s := s + UTF8Decode('工作单位:' + sDw1);   // 资格证书编号   if sZhengshuId1 <> '' then     s := s + UTF8Decode('证书编号:' + sZhengshuId1);   Sheet1.Cells[3, 1].Value := s;   // 查询条件 ===================================   // 本表生成时间:   s := UTF8Decode(dateTimeToStr(now));   Sheet1.Cells[5, 11].Value := s; except   on E: Exception do   begin     //XLApp.Visible := true;     log('Error: ' + E.Message);     showmessage(ansiToUtf8('Error: ' + E.Message));   end;   //XLApp.Quit;   //XLAPP := Unassigned;  end; //XLApp.Visible := true; PBar1.Position:=0;   
0 0