XLSReadWriteII4使用.docx

上传人:b****7 文档编号:9819344 上传时间:2023-02-06 格式:DOCX 页数:23 大小:24.42KB
下载 相关 举报
XLSReadWriteII4使用.docx_第1页
第1页 / 共23页
XLSReadWriteII4使用.docx_第2页
第2页 / 共23页
XLSReadWriteII4使用.docx_第3页
第3页 / 共23页
XLSReadWriteII4使用.docx_第4页
第4页 / 共23页
XLSReadWriteII4使用.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

XLSReadWriteII4使用.docx

《XLSReadWriteII4使用.docx》由会员分享,可在线阅读,更多相关《XLSReadWriteII4使用.docx(23页珍藏版)》请在冰豆网上搜索。

XLSReadWriteII4使用.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1