XLSReadWriteII4使用.docx
- 文档编号:9819344
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:23
- 大小:24.42KB
XLSReadWriteII4使用.docx
《XLSReadWriteII4使用.docx》由会员分享,可在线阅读,更多相关《XLSReadWriteII4使用.docx(23页珍藏版)》请在冰豆网上搜索。
XLSReadWriteII4使用
这是自带的一个例子,看懂这一点东西,基本的操作应该没问题了....
unitMain;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,XLSReadWriteII4,XLSFonts4,CellFormats4,BIFFRecsII4;
type
TfrmMain=class(TForm)
Label1:
TLabel;
Button1:
TButton;
edFilename:
TEdit;
Button2:
TButton;
Button3:
TButton;
dlgSave:
TSaveDialog;
XLS:
TXLSReadWriteII4;
procedureButton1Click(Sender:
TObject);
procedureButton2Click(Sender:
TObject);
procedureButton3Click(Sender:
TObject);
private
procedureAddFormats;
public
{Publicdeclarations}
end;
var
frmMain:
TfrmMain;
implementation
{$R*.dfm}
procedureTfrmMain.AddFormats;
begin
(*Formatasinglecell*)
(*显示字符串*)
XLS.Sheets[0].AsString[0,1]:
='Cell1';
(*字符串颜色*)
XLS.Sheets[0].Cell[0,1].FillPatternForeColor:
=xcYellow;
(*字体*)
XLS.Sheets[0].Cell[0,1].FontStyle:
=[xfsBold,xfsItalic];
(*Formatanumbercell(3decimalsandthousandseparator)
(*格式化字符串,显示小数点后三位,千位和百位之间加个空格*)
XLS.Sheets[0].AsFloat[0,0]:
=12335985394.895634;
XLS.Sheets[0].Cell[0,0].NumberFormat:
='###0.000';
(*Writeastringcell.*)
XLS.Sheet[0].AsStringRef['C2']:
='Hello';
(*单元格赋值*)
(*Setthefontsizeofthecellsinthearea.
(*改变区域内的字体大小*)
XLS.Sheet[0].Range.Items[1,0,3,3].FontSize:
=14;
(*Setthecolorofthecells.*)
(*设置区域的颜色*)
XLS.Sheet[0].Range.ItemsRef['B1:
D4'].FillPatternForeColor:
=xcYellow;
(*Setaoutlineborder.*)
(*设置外框线的外形、颜色*)
XLS.Sheet[0].Range.ItemsRef['B1:
D4'].BorderOutlineStyle:
=cbsThick;
(*Setcoloroftheoutlineborder.*)
XLS.Sheet[0].Range.ItemsRef['B1:
D4'].BorderOutlineColor:
=xcRed;
(*Makeacopyofthecells.*)
(*区域复制*)
XLS.Sheet[0].Range.ItemsRef['B1:
D4'].Copy(8,10);
(*Movethecells.*)
(*区域移动*)
XLS.Sheet[0].Range.ItemsRef['B1:
D4'].Move(8,2);
end;
procedureTfrmMain.Button1Click(Sender:
TObject);
begin
AddFormats;
XLS.Filename:
=edFilename.Text;
(*保存文件*)
XLS.Write;
end;
procedureTfrmMain.Button2Click(Sender:
TObject);
begin
dlgSave.FileName:
=edFilename.Text;
ifdlgSave.Executethen
edFilename.Text:
=dlgSave.FileName;
end;
procedureTfrmMain.Button3Click(Sender:
TObject);
begin
Close;
end;
end.
/////////////////////////////////////////////////////////////////////////////////////
Delphi中使用XlsReadWriteII
在Delphi中读取Excel文件,使用CreateOleObject的方式挺讨厌的,一直搞不定,输出了文件之后,总会在系统中打开一个Excel,就算Quit也不行,一个程序中使用的多了,还不定搞出什么事情来。
狠狠心找个其它的东西来代替,于是发现了XlsReadWriteII。
使用之后发现这个东西真不错,简单好用。
不管是读还是写均轻松搞定。
下面是Demo中的代码。
写文件代码,包括对格式的定制:
XLS.Filename:
='FormatSample.xls';
XLS.Clear;
//Addformat#0//先添加格式即ForMat:
控件有一个默认的格式,序号为0,以后每添加一个,序号就加1
withXLS.Formats.Adddobegin
FontIndex:
=XLS.Fonts.AddIndex;
XLS.Fonts[FontIndex].Name:
='Couriernew';
XLS.Fonts[FontIndex].Size:
=14;
XLS.Fonts[FontIndex].Color:
=xcRed;
end;
//Addformat#1
withXLS.Formats.Adddobegin
FontIndex:
=XLS.Fonts.AddIndex;
XLS.Fonts[FontIndex].AssignTFont(Font);
end;
//Addformat#2
withXLS.Formats.Adddobegin
FillPatternForeColor:
=xcLilac;
end;
//Addformat#3
withXLS.Formats.Adddobegin
BorderTopColor:
=xcBlue;
BorderBottomColor:
=xcBlue;
BorderTopStyle:
=cbsThin;
BorderBottomStyle:
=cbsThick;
end;
//Addformat#4
//ShortDateFormatisaDelphiglobalvariableforthelocaldateformat.
withXLS.Formats.Adddobegin
NumberFormat:
=ShortDateFormat;
end;
XLS.Sheets[0].WriteString(1,2,0,'Format#0');
XLS.Sheets[0].WriteString(1,3,1,'Format#1');
XLS.Sheets[0].WriteString(1,4,2,'Format#2');
XLS.Sheets[0].WriteString(1,5,3,'Format#3');
XLS.Sheets[0].WriteNumber(1,6,4,Date);
XLS.Write;//如果需要另存为一个文件,改FileName之后再写一次,如需更改工作簿的名称,设置Sheets[0].Name就可以了。
读取文件代码:
var
Col,Row:
integer;
Sum:
double;
begin
ifedFilename.Text=''thenbegin
ShowMessage('Filenameismissing');
Exit;
end;
Sum:
=0;
XLS.Filename:
=edFilename.Text;
XLS.Read;//此行不能省,否则读取不到数据
XLS.Sheets[0].LastCol:
=255;
XLS.Sheets[0].LastRow:
=65535;
forCol:
=XLS.Sheets[0].FirstColtoXLS.Sheets[0].LastColdobegin
forRow:
=XLS.Sheets[0].FirstRowtoXLS.Sheets[0].LastRowdobegin
if(Row Grid.Cells[Col+1,Row+1]: =XLS.Sheets[0].AsFmtString[Col,Row]; ifXLS.Sheets[0].CellType[Col,Row]=ctFloatthen Sum: =Sum+XLS.Sheets[0].AsFloat[Col,Row]; end; end; lblSum.Caption: =Format('Thesumofallnumericcellsare: %.2f',[Sum]); Grid.Invalidate; end; ///////////////////////////////////////////////////////////////////////// XLsReadWrite制作Excel时控制列的的格式 分类: delphi2011-08-0614: 35116人阅读评论(0)收藏举报 最近研究下XlsReadWrite控件的使用。 其中,学会了在制作Excel时如何控制一整列的格式,如文本格式 先添加格式即ForMat: 控件有一个默认的格式,序号为0,以后每添加一个,序号就加1 withXLS.Formats.Adddobegin FormatOptions: =[foWrapText]; HorizAlignment: =chaCenter;//对齐方式 NumberFormat: ='@';//主要设置该属性的值 VertAlignment: =cvaCenter; end; 然后添加当前Sheet中列的格式,语句如下: withXLS.Sheets[0].ColumnFormats.Adddo begin Col1: =2;//起始列的位置 Col2: =3;//结束列的位置 FormatIndex: =4;//ForMat对应的序号 end; /////////////////////////////////////////////////////////////// 用XlsReadWrite控件的时候怎样合并单元格? 我查到了,XLSReadWriteII.Sheets[0].MergedCells.Add(Col1,Row1,Col2,Row2); ///////////////////////////////////////////////////////////////////////////////// Delphi编程保存数据到Excel文件(3): 使用XLSReadWriteII控件 今天采用XLSReadWriteII控件来完成10×10的乘法表,发现它很灵活,实现的功能比较多,基本能满足所以的需求。 代码片断如下: procedureTForm1.Button1Click(Sender: TObject); Var i,j: Integer; begin XLS.Sheets[0].Name: ='Tentimestable(乘法表)';//给工作表命名 //Generalsettings常规的格式设置 WithXLS.Sheet[0].Range.ItemsRef['B2: M14']dobegin FontSize: =12; FontStyle: =[xfsBold]; FillPatternForeColor: =TExcelColor(45); HorizAlignment: =chaCenter; end; //Title标题 WithXLS.Sheet[0].Range.ItemsRef['B2: M2']dobegin Merged: =true; HorizAlignment: =chaCenter; FontSize: =14; end; XLS.Sheet[0].AsStringRef['B2']: ='TenTimesTable(乘法表)'; //columnsheader列头 WithXLS.Sheet[0].Range.ItemsRef['C3: M3']dobegin FillPatternForeColor: =TExcelColor(53);//Interior.ColorIndex: =53; FontColor: =xcWhite; end; //rowsheader行头 WithXLS.Sheet[0].Range.ItemsRef['B4: B14']dobegin FillPatternForeColor: =TExcelColor(53); FontColor: =xcWhite; end; //Tablevalues表内值 forj: =0to10dobegin//循环各列 //columnheader列头(先列后行基于0开始) XLS.Sheets[0].AsInteger[2+j,2]: =j; //rowheader行头(先列后行基于0开始) XLS.Sheets[0].AsInteger[1,3+j]: =j; //timetable表内值 fori: =0to10dobegin//循环各行 XLS.Sheets[0].AsInteger[2+j,3+i]: =i*j; end; end; XLS.Filename: ='TenTimesTable.xls';//保存到文件 XLS.Write; MessageDlg('TenTimesTable.xlsiscreated',mtInformation,[mbOk],0); end; ///////////////////////////////////////////////////////////////////////////////////////////// 使用NativeExcel2控件 这个控件非常好,非常的简捷,尤其是Range对象操作使用起来非常方便,值得推荐。 代码片断如下: procedureTForm1.Button1Click(Sender: TObject); VarBook: IXLSWorkbook;//申明工作薄 ws: IXLSWorksheet;//申明工作表 i,j: integer; begin //Createworkbook创建工作薄 Book: =TXLSWorkbook.Create; //Addnewsheet在工作薄中加一个新的工作表 ws: =Book.Sheets.Add; ws.Name: ='Tentimestable(乘法表)';//给工作表命名 //Generalsettings常规的格式设置 Withws.Range['B2','M14']dobegin Font.Size: =12; Font.Bold: =true; ColumnWidth: =5.71; Interior.ColorIndex: =45; Borders.ColorIndex: =xlColorIndexAutomatic; HorizontalAlignment: =xlHAlignCenter; end; //Title标题 Withws.Range['B2','M2']dobegin Merge(false); Font.Size: =14; Value: ='TenTimesTable(乘法表)'; end; //columnsheader列头 Withws.Range['C3','M3']dobegin Interior.ColorIndex: =53; Font.Color: =clWhite; end; //rowsheader行头 Withws.Range['B4','B14']dobegin Interior.ColorIndex: =53; Font.Color: =clWhite; end; //Tablevalues表内值 fori: =0to10dobegin //columnheader列头 ws.Cells.Item[3,i+3].Value: =i; //rowheader行头 ws.Cells.Item[i+4,2].Value: =i; //timetable表内值 forj: =0to10dobegin//先行后列 ws.Range['C4','M14'].Item[i+1,j+1].Value: =i*j; end; end; Book.SaveAs('TenTimesTable.xls');//保存到文件 MessageDlg('TenTimesTable.xlsiscreated',mtInformation,[mbOk],0); end; ///////////////////////////////////////////////////////////////////// 下面附带了我写的一个DBGridToExcel控件,功能是把DBGrid中的数据导出到Excel中。 大家可以学习一下,做为参考。 为个控件中包括了使用属性,方法和我们将在下一篇中讲到的“事件”。 附1: 安装自制控件的方法: (1).在Component菜单中,选择"InstallComponent...". (2).在UnitFilename后面单击“...",选择"*.pas"控件的单元文件,再点击OK。 在出现的窗口中单击"install",即安装完毕。 新装的控件即出现在你的面板中。 附2: TDBGridToExcel控件的全部源码,把它拷贝到记事本中,存为.pas文件即可。 unitDBGridToExcel; {***********************************************************************} {**} {*ExportGridToWordVCLControlforD5&D6*} {*Copyright(C)xiangding2003.10.1Allrightsreserved*} {*BugReport: boyxd@*} {*Author: 小熊*} {**} {***********************************************************************} {**} {*ThisisaSimpleVersion*} {**} {***********************************************************************} {**} {*Install: *} {*PleaseSaveasfileGridToExcel.pasthenopenthefile*} {*Clickthemenuitem[Component]-->[InstallComponent]*} {*Click[Install]buttonintheInstallComponentdialog*} {*afterinstall,youcanfindthecontrolatcomponent*} {*page[sample]*} {**} {***********************************************************************} {**} {*安装: *} {*把附件保存,然后用Delphi打开这个GridToExcel.Pas文件,*} {*选择Delphi菜单--〉Component-->InstallComponent,*} {*然后选择Install即可。 安装之后,在控件面板的Samples页面上面,*} {*熟悉之后,你可以试着设置一些复杂的属性,其他的自己摸索吧,*} {***********************************************************************} interface uses Windows,StdCtrls,ComCtrls,Messages,DBGrids,Graphics,ExtCtrls, Forms,DB,ComObj,Controls,SysUtils,Classes; ResourceString SPromptExport='请等待,正在导出数据……'; SConnectExcel='正在启动Excel,请稍候……'; SConnectExcelError='连接Excel失败,可能没有安装Excel,无法导出.'; SC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XLSReadWriteII4 使用