Delphi 2007按列拆分Excel文件

按某一列拆分 Excel 文件的需求,在数据中真的挺常见。尤其是你手上拿到一个巨大的表格,客户说“帮我按部门分一下”——那真是一顿复制粘贴的噩梦。

Delphi 2007 配合ComObj单元,就能比较轻松搞定这个事。你可以通过CreateOleObject创建 Excel 应用,用Workbook.Worksheets获取内容,读取特定列的值,比如 A 列,再按值拆分保存多个 Excel。效率高,操作也不复杂。

整个流程主要分四步:打开文件、读取数据、按条件拆分、新建并保存工作簿。比如下面这段代码,直接搞定 Excel 的加载:

ExcelApp := CreateOleObject('Excel.Application');
Workbook := ExcelApp.Workbooks.Open('path_to_file.xlsx');

再比如按 A 列拆分:

for i := 1 to LastRow do
  Value := Worksheet.Cells[i, 1].Value;

复制格式、页眉、页脚这些,稍微麻烦点,不过借助VCL组件或者像Aspose.Cells这种库,起来也还不错。你甚至还能保留原始样式,文件一看就专业。

记得关掉 Excel,释放资源。尤其是在循环中频繁操作 Excel 时,一不注意就容易内存泄漏,最好加上异常和清理逻辑。

如果你经常报表拆分,可以考虑把这些逻辑封装成一个小工具,像文章里提到的“ExcelTools”那样,写一次、复用多次,省时又省心。

如果你更习惯图形界面操作,还可以看看这些工具:

,Delphi 配合 COM 接口 Office,还是蛮顺手的。如果你正好要批量拆 Excel,建议试试这个方法,代码不多,效果还不错。

rar
ExcelTools.rar 预估大小:45个文件
folder
ExcelTools 文件夹
file
ExcelTools.res 5KB
folder
__history 文件夹
file
Unit_Main.pas.~315~ 10KB
file
Unit_ShareFunction.pas.~2~ 261B
file
Unit_ShareFunction.pas.~7~ 783B
file
ExcelTools.dpr.~2~ 249B
file
Unit_Main.pas.~308~ 9KB
file
Unit_ShareFunction.pas.~4~ 493B
file
Unit_ShareFunction.pas.~1~ 65B
file
Unit_Main.pas.~310~ 9KB
file
Unit_ShareFunction.pas.~9~ 761B
file
Unit_ShareFunction.pas.~6~ 783B
file
Unit_ShareFunction.pas.~10~ 761B
file
Unit_Main.dfm.~90~ 9KB
file
Unit_ShareFunction.pas.~3~ 292B
file
Unit_ShareFunction.pas.~5~ 650B
file
Unit_ShareFunction.pas.~8~ 760B
file
Unit_Main.dfm.~93~ 9KB
file
ExcelTools.dpr.~1~ 240B
file
Unit_Main.pas.~307~ 9KB
file
Unit_Main.pas.~314~ 9KB
file
Unit_Main.dfm.~91~ 9KB
file
Unit_Main.pas.~309~ 9KB
file
Unit_Main.dfm.~89~ 9KB
file
Unit_Main.pas.~311~ 9KB
file
Unit_Main.pas.~313~ 9KB
file
Unit_Main.dfm.~94~ 9KB
file
Unit_Main.dfm.~97~ 9KB
file
Unit_Main.dfm.~92~ 9KB
file
Unit_Main.pas.~316~ 10KB
file
Unit_Main.dfm.~95~ 9KB
file
Unit_Main.pas.~312~ 9KB
file
Unit_Main.dfm.~96~ 9KB
file
Unit_Main.dfm.~98~ 9KB
file
Unit_Main.dcu 17KB
file
ExcelTools.dproj.local 942B
file
Unit_ShareFunction.dcu 1KB
file
ExcelTools.identcache 275B
file
Unit_Main.dfm 9KB
file
ExcelTools.exe 591KB
file
ExcelXP.dcu 2.31MB
file
Unit_Main.pas 10KB
file
Unit_ShareFunction.pas 761B
file
ExcelTools.dpr 300B
file
ExcelXP.pas 2.3MB
file
ExcelTools.dproj 4KB
rar 文件大小:778.56KB