【摘要】
本文介绍如何将经各种渠道得来的结构化数据自动生成各种格式的 Excel 文件,如单纯导出数据、导出大量数据、指定显示属性、固定行列填充、动态条件显示属性、分组带明细及统计、交叉统计表等,并用 esProc SPL 举例实现。请点击生成各种格式的 Excel 文件示例了解详情
在数据处理时,有时要把查询、分析计算、统计、数据采样等各种渠道得来的结构化数据,用程序自动生成各种格式的Excel文件。
本文将分别针对单纯导出数据、导出大量数据、指定显示属性、固定行列填充、动态条件显示属性、分组带明细及统计、交叉统计表等介绍实现方法,并提供用 esProc SPL 编写的代码示例。esProc 是专业的数据计算引擎, SPL 中有完善的 Excel 文件导出函数,将结构化数据导出成 Excel 非常方便。本文不探讨要导出的数据如何得来,假设它已经存在一个文本文件里了。
1. 单纯导出数据
1.1 导出新文件
将列名导出到Excel文件的第一行,第二行开始导出数据记录,每行一条记录。
示例:将订单表数据导出到一个新的Excel文件orders.xlsx,esProc SPL脚本如下:
A | 注释 | |
1 | =file("e:/txt/orders.txt":"UTF-8").import@t() | 读入文本数据 |
2 | =file("e:/excel/orders.xlsx").xlsexport@t(A1) | 导出Excel文件,@t表示将列名导出到第一行 |
导出时如果文件不存在,会自动创建文件。函数xlsexport的参数中,可以指定需要导出的列,本例中没有指定,则导出所有的列;还可以指定导出数据的sheet名字,本例没有指定,则导出到第一个sheet中。
导出后的orders.xlsx部分数据如下图所示:
1.2 追加数据
Excel文件已经存在,要将新的数据追加在已有数据的后面。此时只需要追加数据记录,不用再导出列名了。
示例:将今日新增加的订单表数据追加到原有的orders.xlsx中,esProc SPL脚本如下:
A | 注释 | |
1 | =file("e:/txt/aday.txt":"UTF-8").import@t() | 读入文本数据 |
2 | =file("e:/excel/orders.xlsx").xlsexport@a(A1) | @a表示将数据追加到原文件之尾 |
1.3 导出到指定 Sheet
导出数据时,指定保存数据的Sheet的名称。
示例:将来自Shantai公司的订单表数据导出到orders.xlsx文件里名为Shantai的Sheet中。本例中只导出指定的列数据,并修改某些列名,esProc SPL脚本如下:
A< |