Delphi使用SpreadSheet

https://wenku.baidu.com/view/c03a6ff50029bd64793e2c3a.html

 

1、开发环境

以Delphi7为例,使用DevExpress套件中的ExpressSpreadSheet组件1.38版本进行开发设计。

2、控件安装

控件源码:

DevExpress.ExpressSpreadSheet.v1.38.for.Delphi.BCB.Full.Source-SSG.rar

这个源码在CSDN上也有,请直接点击下面的超链接自行下载:

https://download.csdn.net/download/gfarmer/3465452

请解压缩之后,按照如下控件包的顺序依次安装,并设置Delphi编译路径。

顺序控件名称操作帮助文件
1XP Theme Manager编译
2ExpressGDI+ Library编译
3ExpressLibrary编译+安装
4ExpressSpreadSheet编译+安装

其中帮助采用的还是比较原始的hlp格式,如果您的操作系统是win10/8/7等,只要出不来帮助,就请按照这个文章进行设置:

[]

3、控件使用

学习资料请参考https://blog.csdn.net/hotmee/article/category/5948851,这个大神写了几篇相关文章,不过都是C#的,需要自己研究对照。

<span style="color: red">最重要的学习资料就是控件源码路径下的帮助hlp文件,务必要详细阅读。</span>

3.1 合并单元格

var
  st : TcxSSBookSheet;
  r : TRect;
begin
  st := book.Pages[0];
  r.Left := 1;  //第二列,0起始
  r.Top := 1;   //第二行
  r.Right := 5; //第六列
  r.Bottom := 2;//第三行
  st.SetMergedState(r, True); //第二个参数true标识合并单元格
end;

3.2 单元格操作

var
  st : TcxSSBookSheet;
  cell1, cell2 : TcxSSCellObject;
begin
  st := book.Pages[0];

  cell1 := st.GetCellObject(0, 0); //A1
  cell1.Text := '1';
  cell1 := st.GetCellObject(1, 0); //B1
  cell1.Text := '2';
  cell1 := st.GetCellObject(2, 0); //C1
  cell1.SetCellText('=A1+B1', True); //公式,第二个参数默认为False,如果为True可以重新计算

  cell2 := st.GetCellObject(1, 1); //C2
  cell2.SetCellText(cell1.Text); //TEXT方式获取到的是单元格的公式
  cell2 := st.GetCellObject(1, 2); //C3
  cell2.SetCellText(cell1.CellValue); //CellValue获取的是单元格的值

  cell2 := st.GetCellObject(2, 2); //C3
  cell2.SetCellText('杨雨田');
  //画左右上下四条线
  cell2.Style.Borders.Left.Style := lsMedium;
  cell2.Style.Borders.Right.Style := lsThin;
  cell2.Style.Borders.Top.Style := lsThick;
  cell2.Style.Borders.Bottom.Style := lsDouble;
  {
    lsDefault,  lsThin, lsMedium, lsDashed, lsDotted,
    lsThick,  lsDouble, lsHair, lsMediumDashed, lsDashDot, lsMediumDashDot,
    lsDashDotDot, lsMediumDashDotDot, lsSlantedDashDot, lsNone
  }
  
  //设置背景色,前景色等
  cell2.Style.Brush.AssignInfo(fsSolid, 2, 5);

  //设置字体
  cell2.Style.Font.AssignInfo('微软雅黑', 40, [fsBold], GB2312_CHARSET, 5);

  //对齐
  cell2.Style.HorzTextAlign := haRIGHT; {haGENERAL, haLEFT, haCENTER, haRIGHT, haFILL, haJUSTIFY}
  cell2.Style.VertTextAlign := vaBOTTOM; {vaTOP, vaCENTER, vaBOTTOM, vaJUSTIFY}
  
  //设置行高度
  st.Rows.Size[0] := 120;
  st.Rows.Size[1] := 80;
  st.Rows.Size[2] := 150;

  //设置列宽度
  st.Cols.Size[0] := 120;
  st.Cols.Size[1] := 80;
  st.Cols.Size[2] := 200;
end;

3.3 加载EXCEL/保存EXCEL

begin
  book.SaveToFile('e:\abc.xlsx'); //导出
  book.LoadFromFile('e:\abc.xlsx'); //导入
end;

3.4 删除Sheet/增加Sheet

procedure Del()
begin
  book.DeleteSheet(0);
end;

procedure Add()
begin
  book.AddSheetPage('第一页' + FormatDateTime('yyyy-mm-dd hh:nn:ss', Now));
end;

3.5 关于打印

还没有找到好用的打印方法,暂时可以直接通过ShellExecute执行xls文件的print方法输出到打印机。


常用操作
Spreadsheet常用属性
标题栏是否可见 Spreadsheet1.TitleBar.Visible=true
标题栏背景颜色 Spreadsheet1.TitleBar.Interior.Color="Green"
标题栏标题内容 Spreadsheet1.TitleBar.Caption="test"
标题栏字体颜色 Spreadsheet1.TitleBar.Font.Color="Red"
标题栏字体名称 Spreadsheet1.TitleBar.Font.Name="Vendana"
标题栏字体大小 Spreadsheet1.TitleBar.Font.Size=10
标题栏字体是否加粗 Spreadsheet1.TitleBar.Font.Bold=true
标题栏字体是否加下划线 Spreadsheet1.TitleBar.Font.Underline=true
标题栏字体是否倾斜 Spreadsheet1.TitleBar.Font.Italic=true
选取单个单元格 Spreadsheet1.ActiveSheet.Range("A2").Select()
选取矩形区域内的所有单元格 Spreadsheet1.ActiveSheet.Range("A2:D3").Select()
单元格宽度 Spreadsheet1.ActiveSheet.Range("A2").ColumnWith=100
单元格宽度 Spreadsheet1.ActiveSheet.Range("A2").RowHeight=100
从当前位置删除指定的列数 Spreadsheet1.ActiveSheet.Range("A2").DeleteColumns(10)
从当前位置删除指定的行数 Spreadsheet1.ActiveSheet.Range("A2").DeleteRows(10)
从当前位置插入指定的列数 Spreadsheet1.ActiveSheet.Range("A2").InsertColumns(10)
从当前位置插入指定的行数 Spreadsheet1.ActiveSheet.Range("A2").InsertRows(10)
单元格框线的宽度 Spreadsheet1.ActiveSheet.Range("A2").Borders.Weight=2
单元格框线的颜色 Spreadsheet1.ActiveSheet.Range("A2").Borders.Color="Red"
单元格框线样式 Spreadsheet1.ActiveSheet.Range("A2").Borders.LineStyle=4(2~6)
对单元格赋值 Spreadsheet1.ActiveSheet.Range("A2").Value="123"
剪切/复制/粘帖单元格内容 Spreadsheet1.ActiveSheet.Range("A2").Cut(){Copy();Paste()}
粘帖指定内容到单元格 Spreadsheet1.ActiveSheet.Range("A2").ParseText("test")
单元格内容清空 Spreadsheet1.ActiveSheet.Range("A2").Clear()
单元格内执行查询 Spreadsheet1.ActiveSheet.Range("A2").Find("test")
单元格背景颜色 Spreadsheet1.ActiveSheet.Range("A2").Interior.Color="Yellow"
单元格字体颜色 Spreadsheet1.ActiveSheet.Range("A2").Font.Color="Red"
单元格字体名称 Spreadsheet1.ActiveSheet.Range("A2").Font.Name="Verdana"
单元格超链接名称 Spreadsheet1.ActiveSheet.Range("A2").Hyperlink.Name="超链接"
单元格超链接URL Spreadsheet1.ActiveSheet.Range("A2").Hyperlink.Address=“http://www.sohu.com”
单元格超链接删除 Spreadsheet1.ActiveSheet.Range("A2").Hyperlink.Delete()
单元格内文字垂直对齐方向 Spreadsheet1.ActiveSheet.Range("A2").VAlignment=1(0,1,2)
单元格内文字水平对齐方向 Spreadsheet1.ActiveSheet.Range("A2").HAlignment=2(1,2,3)
合并单元格 Spreadsheet1.ActiveSheet.Range("C3:D5").Merage
撤销合并 Spreadsheet1.ActiveSheet.Range("C3:D5").UnMerage
自动套用计算公式 Spreadsheet1.ActiveSheet.Range("B2").Formula="=SUM(C5*C6)"
单元格内容格式化 Spreadsheet1.ActiveSheet.Range("B2").NumberFormat="¥ #,##0.00;¥-#,##0.00"
保护xls文档 Spreadsheet1.ActiveSheet.Protection.Enabled=true
输出到本地并在Excel环境打开 Spreadsheet1.ActiveSheet.Export("C:\\test.xls")
自适应行高 Spreadsheet1.AutoFit=true
是否隐藏表头 Spreadsheet1.DisplayColHeaders=true
是否隐藏电子表格线 Spreadsheet1.DisplayGridlines=true
是否隐藏横向滚动条 Spreadsheet1.DisplayHorizontalScrollBar=true
是否隐藏纵向滚动条 Spreadsheet1.DisplayVerticalScrollBar=true
是否隐藏属性工具箱 Spreadsheet1.DisplayPropertyToolbox=true
是否隐藏标志表头 Spreadsheet1.DisplayRowHeaders=true
是否隐藏标题栏 Spreadsheet1.DisplayTitleBar=true
是否隐藏工具栏 Spreadsheet1.DisplayToolBar=true
刷新 Spreadsheet1.Refresh()
文字提示 Spreadsheet1.ToolTipText="test"
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝈蝈(GuoGuo)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值