Delphi Excel操作,写了个ADODataSet转Excel的函数作为后期学习的例子
使用该函数需要先Use Excel2010
//DataSet导出Excel2010格式//FileName=待导出的Excel的文件名,不带路径以及后缀;TitleLine1=导出后Excel第一表头,TitleLine2=Excel第二表头;CellsNames=Excel表格中Field的Title名称;//IsOpen=是否马上打开
procedure sysDSetToXlsx(DSet: TADODataSet;FileName,TitleLine1,TitleLine2:String;CellsNames: TStringList; IsOpen: Boolean = False);
varExcelApp: TExcelApplication;ExcelWorkBook: TExcelWorkbook;ExcelWorkSheet: TExcelWorksheet;Range: OleVariant;I,RecNo: Integer;TmpPath: string;
begintryExcelApp := TExcelApplication.Create(nil);ExcelWorkBook := TExcelWorkbook.Create(nil);ExcelWorkSheet := TExcelWorksheet.Create(nil);exceptmsgRaise('没有安装office 2007或以上版本,请安装后再试');end;//创建ExcelExcelApp.Connect;ExcelApp.Workbooks.Add(null,0);ExcelWorkBook.ConnectTo(ExcelApp.Workbooks[1]);ExcelWorkSheet.ConnectTo(ExcelWorkBook.Worksheets[1] as _WorkSheet);//构造Excel表头Range := ExcelApp.Range[ExcelWorkSheet.Cells.Item[1,1],ExcelWorkSheet.Cells.Item[2,CellsNames.Count]];Range.MergeCells := True;Range.Font.Size := 18;Range.Font.Bold := True;Range.HorizontalAlignment := 3; //横向居中,此处如果使用xlCenter报“类Range” 错误 Range.VerticalAlignment := 2; //竖向居中,此处如果使用xlCenter报“类Range” 错误Range.RowHeight := 40;Range.Cells[1,1] := TitleLine1; //表头第一行Range := ExcelApp.Range[ExcelWorkSheet.Cells.Item[3,1],ExcelWorkSheet.Cells.Item[3,CellsNames.Count]];Range.MergeCells := True; //合并Range.Font.Size := 10;Range.Font.Bold := True;Range.HorizontalAlignment := 4; //同上错误Range.VerticalAlignment := 2; //同上错误 Range.RowHeight := 20;Range.Cells[1,1] := TitleLine2; //表头第二行
Range.Cells[3,1].Select; //此处两行代码用于冻结头两行
ExcelApp.ActiveWindow.FreezePanes := True;
for I := 1 to CellsNames.Count dobeginRange.Cells[2,I] := CellsNames.Names[I-1]; //需与DSet的Fields顺序保持一致Range.Columns[I].ColumnWidth := CellsNames.Values[CellsNames.Names[I-1]]; //Excel文件中的单元格宽,单位为字符.end;RecNo := DSet.RecNo;DSet.DisableControls;DSet.First;while not DSet.Eof dobeginfor I := 1 to CellsNames.Count doRange.Cells[DSet.RecNo + 2, I] := VarToStr(DSet.Fields[I-1].Value);DSet.Next;end;DSet.RecNo := RecNo;DSet.EnableControls;TmpPath := sysGetPath(HInstance) + 'xls\'; //sysGetPath=自定义函数,获取当前路径if not DirectoryExists(TmpPath) thenForceDirectories(TmpPath);ExcelWorkSheet.SaveAs(TmpPath + FileName + '.xlsx');ExcelWorkSheet.Disconnect;ExcelWorkBook.Disconnect;ExcelApp.Quit; //这句比较重要,很多例子中没有这句,关闭后,进程中还是能够发现Excel进程没有关闭ExcelApp.Disconnect;FreeAndNil(ExcelWorkSheet);FreeAndNil(ExcelWorkBook);FreeAndNil(ExcelApp);if IsOpen thensysExecuteFile(TmpPath + FileName + '.xlsx','','',0);
end;
转载于:https://www.cnblogs.com/jupt/p/3922975.html
Delphi Excel操作,写了个ADODataSet转Excel的函数作为后期学习的例子相关推荐
- java excel 操作 poi_Java使用apache poi进行excel相关操作
一.基本介绍 1.1.Apache POI介绍 Apache POI是一个可以进行微软的文档进行开源库,可以操作的文档类型包括word.ppt.excel.visio.outlook.... 本文主要 ...
- python学习,pip 模块-数据库(mysql)-excel操作-写日志-邮件-md5加密
#模块 # 标准模块 # python自带的 # 第三方模块 # pymysql # 自己写的python文件 # 导入模块的实质 # import my_model # 把导入的模块运行了一遍 # ...
- 用python处理excel的基本语法_Python对Excel操作详解
Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...
- java导入导出excel操作(jxl)
java导入导出excel操作(jxl) Java解释Excel数据(jxl.jar包的使用) 关键字: java excel jxl.jar jxl.jar 包 下载地址: http://www.a ...
- 【Apache POI】Excel操作(四):Excel大数据量的写入
迷茫代表着你身边还有选择,焦虑意味着你手上还有时间. 有目录,不迷路 前言 超量数据 速率比较 原因剖析 超级版本大救星 往期回顾 前言 之前在下面这期Excel操作: [Apache POI]Exc ...
- python excel数据处理教程pdf_python对excel操作详解.pdf
python对excel操作详解 拟 制 人 胡张东 太仓同维电子有限公司 审 批 人 xxx 测试中心软件测试科 时 间 2013-11-04 Python对Excel操作 详解 文档摘要: 本文档 ...
- python在excle教程全集_Python对Excel操作教程
Python 对 Excel 操作详解 文档摘要: 本文档主要介绍如何通过 python 对 office excel 进行读写操作,使用 了 xlrd . xlwt 和 xlutils 模块. 另外 ...
- 用python实现自动化办公------Excel操作
用python实现自动化办公------Excel操作 用python实现自动化办公------Excel操作 用python实现自动化办公------Excel操作 摘要 一 matplotlib和 ...
- ChatGPT与VBA:Excel操作一键搞定的全能助手
摘要 Excel是一款广泛应用于数据处理和分析的工具,而VBA(Visual Basic for Applications)是一种用于编程自动化Excel操作的语言.然而,对于非专业的Excel用户来 ...
最新文章
- 自律到极致-人生才精致:第11期 - 领奖通知
- Understanding Clouds from Satellite Images比赛的discussion调研与colab数据集下载配置
- 动态决定viewarea应该加载哪个view
- c语言 编程 牛顿迭代,C语言编写牛顿迭代法的跟踪
- c#a服务器上传文件b服务器,C#_c#批量上传图片到服务器示例分享,客户端代码:
复制代码 代码 - phpStudy...
- [PAL规范]SAP HANA PAL演绎推理算法Apriori编程规范APRIORIRULE
- Flex RemoteClass ActionScript类与Java类的绑定
- java管理分类编写_java029学生管理系统的编写
- oracle写完存储过程之后,oracle存储过程和自定义函数
- input只改变光标的颜色 不改变字的颜色
- 条件GAN论文简单解读
- 使用python解决算法和数据结构--使用栈实现进制转换
- 虚拟偶像春天来临,谁能从中脱颖而出?
- react + antd table +hooks 如何实现表格序号自增 翻页后序号不从1开始算起
- IDEA2022 提示:更新 TKK 失败,请检查网络连接
- Metasploit渗透测试魔鬼训练营
- r计算百分位数_R中产生的分位数和百分位数之间的差异
- 【调试】sysRq按键使用方法
- 搭建一个PHP后台的开发环境你所需要配置东西都有哪些?XAMPP问题
- 异常记录 之 nested exception is java.lang.NoClassDefFoundError: com/lowagie/text/pdf/PdfContentByte