delphi中XLSReadWrite控件的使用
一、下载
官方下载网址:
http://www.axolot.com/components/download.htm
从这里可以下载到从Delphi5到DelphiXE全部支持的版本。
二、软件安装
下载下来的文件是exe格式,可以直接安装,一路next即可。
按照默认安装,会在:
C:\Documents and Settings\All Users\Documents\RAD Studio\8.0 路径下生成XLSRWII4_D2011.bpl,安装时需要使用。
C:\Program Files\XLSSuit4路径下生成Package文件、Samples文件夹等,包括程序编写时需要的include文件和例子程序。
三、Delphi XE下安装。
3.1 Install Packages
Delphi XE → 菜单Componet → Install Packages → Add 按键
→ 选择 C:\Documents and Settings\All Users\Documents\RAD Studio\8.0\XLSRWII4_D2011.bpl
3.2 Include 库文件
创建的Delphi XE程序 → 菜单Project → Options → Delphi Compiler → Search Path
→ 增加C:\Program Files\XLSSuit4\Package\D2011\路径。
四、安装完毕,可以使用了!!!! O(∩_∩)O
unit Main;
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;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
procedure AddFormats;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.AddFormats;
begin
(*Format a single cell*)
(* 显示字符串 *)
XLS.Sheets[0].AsString[0,1] :='Cell 1';
(* 字符串颜色 *)
XLS.Sheets[0].Cell[0,1].FillPatternForeColor := xcYellow;
(* 字体 *)
XLS.Sheets[0].Cell[0,1].FontStyle := [xfsBold,xfsItalic];
(*Format a number cell (3 decimals and thousand separator)
(* 格式化字符串,显示小数点后三位,千位和百位之间加个空格 *)
XLS.Sheets[0].AsFloat[0,0] :=12335985394.895634;
XLS.Sheets[0].Cell[0,0].NumberFormat :='# ##0.000';
(* Write a string cell. *)
XLS.Sheet[0].AsStringRef['C2'] :='Hello';
(* 单元格赋值 *)
(* Set the font size of the cells in the area.
(* 改变区域内的字体大小 *)
XLS.Sheet[0].Range.Items[1,0,3,3].FontSize :=14;
(* Set the color of the cells. *)
(* 设置区域的颜色 *)
XLS.Sheet[0].Range.ItemsRef['B1:D4'].FillPatternForeColor := xcYellow;
(* Set a outline border. *)
(* 设置外框线的外形、颜色 *)
XLS.Sheet[0].Range.ItemsRef['B1:D4'].BorderOutlineStyle := cbsThick;
(* Set color of the outline border. *)
XLS.Sheet[0].Range.ItemsRef['B1:D4'].BorderOutlineColor := xcRed;
(* Make a copy of the cells. *)
(* 区域复制 *)
XLS.Sheet[0].Range.ItemsRef['B1:D4'].Copy(8,10);
(* Move the cells. *)
(* 区域移动 *)
XLS.Sheet[0].Range.ItemsRef['B1:D4'].Move(8,2);
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
AddFormats;
XLS.Filename := edFilename.Text;
(* 保存文件 *)
XLS.Write;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
begin
dlgSave.FileName := edFilename.Text;
if dlgSave.Execute then
edFilename.Text := dlgSave.FileName;
end;
procedure TfrmMain.Button3Click(Sender: TObject);
begin
Close;
end;
end.
1、例子解析
for i := 0 to xls.Sheets[m].lastrow do
//**** i定义的是行,lastrow是最大行号,是从0开始的行号,而不是
行数,如按count计算会少计算一行。
for j := 0 to xls.Sheets[m].LastCol do
//****j定义的是列,lastcol是最大列号,是从0开始算的列号,而不是
列数,
begin
//取出单元格的值
s := xls.sheet[0].AsFmtString[j, i];
//判断是否有格式
if xls.sheet[0].cell[j, i].IsFormatted then
begin
//如果单元格背景色是黄色,则..,背景色是FillPatternForeColor
,而不是有backcolor的那个,这是上了当的。
//cell,sheet都是不带s的,且【】后都是先列后行的,与excel,vb的
习惯是不一样的,那是先行后列。
if xls.sheet[0].cell[j, i].FillPatternForeColor =
biffrecsII2.texcelcolor(13) then
begin
tb1.Append;
tb1.fieldbyname('nrow').AsInteger := i;
tb1.fieldbyname('ncol').AsInteger := j;
tb1.FieldByName('mbdm').AsInteger := mb_mctodm
(XLS.Sheets[M].Name);
tb1.post;
end;
end;
except
ShowMessage(IntToStr(i) + '--' + inttostr(j));
end;
end;
2、怎样显示枚举变量的值
// ShowMessage(GetEnumName(TypeInfo(Texcelcolor),
Integer(xls.sheet[0].cell[j, i]
// .FillPatternForeColor)));
当然在前面的引用单元中要加入TypInfo单元。
浙公网安备 33010602011771号