XlsReadWriteII EXCEL Cell 单元数据读写

XlsReadWriteII EXCEL Cell 单元数据读写

    下面从编程的眼光,从XlsReadWriteII的角度,谈谈EXCEL的理解。回顾一下EXCEL发展史:
    1982年:微软推出了它的第一款电子表格软件:Multiplan。
    1985年:推出了EXCEL for Mac。
    1987年:推出了EXCEL 2 for windows。
    1990年:推出Excel3。 
    1992年:推出Excel4。
    1993年:推出Excel5,从此EXcel捆绑到了Microsoft office,Excel开始支持VBA(宏)。
    1995年:推出了Excel95,亦称Excel 7。
    1997年:推出了Excel97,亦称Excel 8。
    1999年:推出Excel2000,亦称Excel 9。
    2001年:推出Excel2001,亦称Excel 10。
    2003年:推出Excel2003,亦称Excel 11。
    2006年:推出Excel2007,亦称Excel 12。
    2010年:推出Excel2010,亦称Excel 14。
    2013年:推出Excel2013 - Microsoft Office 2013 亦称Office15。
    2016年:推出Excel2016 - Microsoft Office 2016 亦称Office16。
    2019年:推出Excel2019 - Microsoft Office 2019 亦称Office17。
    2020年:推出Excel2020 - Microsoft Office 2020 亦称Office18。
    2021年:推出Excel2021 - Microsoft Office 2021 亦称Office19。
    2022年:推出Excel2022 - Microsoft Office 2022 亦称Office20。
    .....
    以上,最关键的二个版本,分别是Excel 97和Excel 2007。
    Excel97,文件后缀名: .xls;
    Excel2007,文件后缀名: .xlsx;
    后续版本文件后缀名都是: .xlsx。

    从编程运用的角度,在软件的运用上,绝大多数软件都支持Excel97和Excel2007这二个版本。
    XlsReadWriteII(1-4)仅支持Excel97-2003,从XlsReadWriteII5开始支持Excel2007。这二个版本,是软件使用最多的版本。
    EXCEL文件是个二进制文件,内部数据是以类似XML。文件结构上是类似树的结构,根部是簿XLS,分支下属诺干个表Sheets。每个表,双由列、行阵列结构的单元Cell组成。各个表之间可以,调用数据。
    从编程的角度,就是对EXCEL进行读(原ECXEL文件)、写(创建EXCEL文件)操作。

    一、EXCEL


    这是EXCEL的根,主要记载EXCEL相关的属性。例如:页面、打印机等属性。

var XLS:TXLSReadWriteII5;
begin
  XLS:=TXLSReadWriteII5.Create(Sender);
  XLS.Version := xvExcel2007;                          //  版本  xvExcel97  Excel2007
end;

    二、Sheets


    这是EXCEL的分支,至少一个、或多个。
    Sheets是组成数据集的场所。
    Sheets结构,就是Cell的阵列 

// 页面参数
  XLS.Sheets[0].PrintSettings.papersize:=psA4;      // A4纸
  XLS.Sheets[0].PrintSettings.MarginTopCm:=1;       // 顶边距
  XLS.Sheets[0].PrintSettings.MarginLeftCm:=1;      // 左边距
  XLS.Sheets[0].PrintSettings.MarginRightCm:=1;     // 右边距
  XLS.Sheets[0].PrintSettings.MarginBottomCm:=1;    // 底边距
  XLS.Sheets[0].Zoom:=percent;                      // 浏览显示比例
// 初始化  Sheet1
  XLS.Sheets[0].Name:= '表一';                      // 给工作表命名

    三、Cell


    Cell是构建Sheets的基础,它包含了数据集的基础数据,以及Cell的相关属性。

    (一)指定Cell的二种方式

      1、单元格名称,这是EXCEL的通用命名方式

    (1)列名由A-Z,26个英文大写字母,组建的26进制序列文字。例如,第1列是A,第26列是Z,第27列是AA。
    (2)行名由1-0。10个数字,组建10进制数字。注意第1行是1。

注意:编程的序列是,0-(n-1)切记。
    (3)Cell命名:列名+行名。例如:A1指定第1列第1行,C4指定第1列第1行,
     例如:A1   C8   X12   

  With XLS.Sheets[0].Range.ItemsRef['A1:G1'] do             // 合并单元
  begin
    .......
  end; 

     2、使用列与行的序列号,这是编辑通行的方式

     Col、Row,指定Cell位置,序列0-(n-1),n是列或行的总数。
     这是按编程语言习惯的命名方式:
    (1)列名序列为0-(n-1),首列0,尾列n-1。例如,第1列是0,第26列是25,第27列是26。
    (2)行名序列为1-(n-1),首行0,尾行 n-1。例如,第1列是0,第10列是9,最后一列是n-1。
    (3)Cell命名:直接指定列、行的序列号。例如:

     XLS.Sheets[0].AsFloat[iCol,iRow]:= 0.001;

    3、指定Cell的位置
    在编程时,函数指定Cell的值,有的参数是Cell的字符名称,有的是Col和Row的值:
    (1)字符名称(单元格名称)指定区域

  With XLS.Sheets[0].Range.ItemsRef['A1:T1'] do         // 通过2个Cell,指定Cell区域      

    (2)使用Col、Row,指定Cell位置

    XLS.Sheets[0].AsFloat[iCol,iRow]:= 0.001;                 // 指定Cell    

    (3)使用二个Cell的Col、Row,指定区域

    with XLS.Sheets[0].MergedCells.Add do
    begin
      iMergedCol1:=0;            // 第1列
      iMergedRow1:=2;            // 第3行
      iMergedCol2:=4;            // 第5列
      iMergedRow2:=6;            // 长7行
    end; 

    四、实际操作  
    声明以下参数:

var iColLast,                  // 最后一列
    iColNow,                   // 当前操作的列
    iRowNow,                   // 当前操作的行
    iCol1,                     // 操作区域Cell1的列
    iCol2,                     // 操作区域Cell1的行
    iRow1,                     // 操作区域Cell2的列
    iRow2 : integer;           // 操作区域Cell2的行

    在编程时,对Cell的操作,从首列、首行开始,按部就班进行。

begin
  iColLast:=15;                // 指定有效列数  
  iColNow:=0;                  // 从首列开始
  iRowNow:=0                   // 从首行开始
  ......
  iRowNow:=iRowNow+1;          // 从首行开始
  iColNow:=0;                  // 从首列开始
  for i:=0 to iColLast-1 do    // 循环列序列
  begin 
    ......
    iColNow:=iColNow+1;        // 从首行开始循环
//  or i 列的序列号
    ......
  end;
end;

  待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值