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单元。

posted @ 2014-04-09 15:19  hanks  阅读(2054)  评论(0)    收藏  举报