当前位置:   article > 正文

XLSReadWriteII控件的升级

xlsreadwriteii

XLSReadWriteII控件的升级

    一直使用XLSReadWriteII4,编制了相关的函数,可以通过XLSReadWriteII4,生成EXCEL报表。但是,近期网站通过EXCEL上传数据,需要EXCEL2007版本的文件(后缀 xslx)。XLSReadWriteII4只能生成EXCEL97版。升级到XLSReadWriteII6,原代码大致修改如下:

    一、单元
原:

  1.   uses
  2. XLSReadWriteII4, XLSFonts4, BIFFRecsII4, XLSRange4, SheetData4, Rows4, Columns4,
  3.   FormattedObj4, XLSUtils4, CellFormats4, CellStorage4, MergedCells4, Cell4,
  4.   XLSDbRead4, XLSNames4,

改:
 

  1. uses
  2. Xc12Utils5, XLSUtils5, XLSNames5, XLSSheetData5, XLSReadWriteII5,
  3.   XLSCellMMU5, XLSDbRead5, Xc12Manager5, Xc12DataStyleSheet5, XLSFormattedObj5,
  4. Xc12DataWorksheet5,
  5.   XLSComment5, XLSDrawing5, Xc12Utils5, XLSSheetData5, XLSCmdFormat5;

     由于版本不同单元文件名不同,使得XLSReadWriteII4与XLSReadWriteII5 6,可以同时使用。建议版本升级后,删除旧版本文件(搜索目录)。

    二、对象的变化
原:

  1.   TSheet
  2.   TCellHorizAlignment;   // 水平对齐
  3.   TCellVertAlignment;    // 垂直对齐
  4.   TCellFontStyles;       // 字体属性

改:

  1.   TXLSWorksheet;
  2.   TXc12HorizAlignment;   // 水平对齐
  3.   TXc12VertAlignment;    // 垂直对齐
  4.   TXc12FontStyles;       // 字体属性

    四、合并单元
原:

  1.   With Sheet.Range.ItemsRef[CellS+':'+Cells1] do
  2.   begin
  3.     Merged:=true;              // 合并单元 属性已取消
  4.     FontName := FontN;
  5.     FontSize := FontI;
  6.     FontStyle:= FontS;
  7.     HorizAlignment:=Hsee;
  8.     VertAlignment:=Vsee;
  9.   end;

改:

  1. var iMergedCol1,iMergedRow1,iMergedCol2,iMergedRow2 : integer;              //  定义合并Cell
  2.   With Sheet.Range.ItemsRef[CellS+':'+Cells1] do
  3.   begin
  4.     with XLS.Sheets[0].MergedCells.Add do
  5.     begin
  6.       iMergedCol1:=TextToCol('A');           // 列1
  7.       iMergedRow1:=0;                        // 行1     -1   0 to Count-1
  8.       iMergedCol2:=TextToCol(LastS);         // 列2
  9.       iMergedRow2:=0;                        // 行2     -1   0 to Count-1
  10.       Col1 := iMergedCol1;
  11.       Row1 := iMergedRow1;
  12.       Col2 := iMergedCol2;
  13.       Row2 := iMergedRow2;
  14.     end;
  15.   end;

   五、取消指定行的有效范围,保留列的有效范围

  1.    XLS.Sheets[0].Rows.AddIfNone(0,Top+5);       // 设置Rows的范围 已取消

   六、Sheet

   原Sheet可以引用,现需要Sheets引用:

  1. XLS.Sheets[0].AsString[19,0]:= '其他';
  2. XLS.Sheets[0].AsString[20,0]:= '准予扣除的捐赠额';
  3. XLS.Sheets[0].AsString[21,0]:= '减免税额';

    七、重复打印

  1. with XLS.InternalNames.Add do begin // 重复打印标题
  2. BuiltInName:=bnPrintTitles;
  3. Definition:='表一!$A$1:$IV$3';
  4. end;

  XLS.InternalNames.Add('Print_Title',XLS.Sheets[0].Name+'!$A$C,'+XLS.Sheets[0].Name+'!$1$3',XLS.Sheets[0].Name);

   八、加入EXCEL版本信息

  XLS.Version := xvExcel2007;                              // EXCEL版本       

 

    九

  1. With XLS.Sheets[0].Range.ItemsRef['A4:'+LastS+IntToStr(Top-1+4)] do // 区域格式设置
  2. begin
  3. FontName:='宋体';
  4. FontSize := 11;
  5. HorizAlignment:=chaCenter;
  6. VertAlignment:=cvaCenter;
  7. BorderLeftStyle := cbsMedium;
  8. BorderLeftColor := xcBlack; // xcGreen;
  9. BorderTopStyle := cbsMedium;
  10. BorderTopColor := xcBlack;
  11. BorderRightStyle := cbsMedium;
  12. BorderRightColor := xcBlack;
  13. BorderBottomStyle := cbsMedium;
  14. BorderBottomColor := xcBlack;
  15. BorderInsideVertStyle:=cbsThin; // 内竖线
  16. BorderInsideVertColor:=xcBlack; // 内竖线
  17. BorderInsideHorizStyle:=cbsThin; // 水平线
  18. BorderInsideHorizColor:=xcBlack; // 水平线
  19. end;

改为:

  1. With XLS.Sheets[0].Range.ItemsRef['A4:'+LastS+IntToStr(Top-1+4)] do // 区域格式设置
  2. begin
  3. FontName:='宋体';
  4. FontSize := 11;
  5. HorizAlignment:=chaCenter;
  6. VertAlignment:=cvaCenter;
  7. BorderLeftStyle := cbsThin; // cbsMedium cbsThin
  8. BorderLeftColor := clBlack;
  9. BorderTopStyle := cbsThin; // cbsMedium;
  10. BorderTopColor := clBlack;
  11. BorderRightStyle := cbsThin; // cbsMedium;
  12. BorderRightColor := clBlack;
  13. BorderBottomStyle := cbsThin; // cbsMedium;
  14. BorderBottomColor := clBlack;
  15. BorderInsideVertStyle:=cbsThin; // 内竖线
  16. BorderInsideVertColor:=clBlack; // 内竖线
  17. BorderInsideHorizStyle:=cbsThin; // 水平线
  18. BorderInsideHorizColor:=clBlack; // 水平线
  19. end;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/88870?site
推荐阅读
相关标签
  

闽ICP备14008679号