目录
1 前言
2 生成数据
3 设计一个汇总
4 试一下效果
5 导出为excel文件的源代码
6 后记
1 前言
对自定义表格中录入或者导入的数据,必须能定义查询和汇总,否则程序基本没什么用。就是说,程序应该具备对任意表格进行方便的查询汇总公式开发的功能。
2 生成数据
用外部电子表格文件生成sqlite的表非常方便。也可以用程序自带的生成测试数据功能,生成一个people(职员)表,这里指定生成1000条数据。不知道为什么速度很慢。
竟然用了13秒多。以后有时间了查查原因。
好了现在有了测试数据表:
可以用这些数据做很多测试工作。
3 设计一个汇总
位置:工具——审核与查询设计
开发时间所限,暂且把查询和汇总放到一起。
切换到“查询”选项卡,点“新建”,生成了一个sql语句框架:
选中一个表,这个表的字段会列出,选“工资字段”,点“加和”按钮,双击一个字段名称,插入到汇总公式中,完成后测试,测试成功后,保存:
定义一个汇总名称:
这样就完成了。
4 试一下效果
菜单位置:功能——查询,双击刚才定义的“分区域职工工资之和”。
导出电子表格文件:
5 导出为excel文件的源代码
procedure TFormQuery.btnOutPortClick(Sender: TObject);
var
Exporter: TFPSExport;
ExportSettings: TFPSExportFormatSettings;
fnOut: string;
begin
SaveDialog1.Filter := 'Excel文件|*.xlsx';
if SaveDialog1.Execute then
fnOut := SaveDialog1.FileName
else
exit;
Exporter := TFPSExport.Create(nil);
ExportSettings := TFPSExportFormatSettings.Create(true);
try
// Write header row with field names
ExportSettings.HeaderRow := true;
ExportSettings.ExportFormat := efXLSX;
// Actually apply settings
Exporter.FormatSettings := ExportSettings;
// Write
Exporter.Dataset := querySummary;
Exporter.FileName := fnOut;
Exporter.Execute;
memo1.append('导出完成: ' + fnOut);
finally
Exporter.Free;
ExportSettings.Free;
end;
end;
可以导出为很多种格式,这里只使用 efXLSX 格式。
不得不说,这个处理电子表格的fpsreadsheet太牛了,继续点赞!
6 后记
到目前,这个快速处理数据的程序暂且取名为“fox”,并且使用了一个小狐狸图标,寓意是希望这个小程序能像聪明的小狐狸一样灵活快速处理数据。因为只能挤时间开发,程序离目标还差十万八千里,非常粗陋。目前勉强实现的功能有:
1、根据电子表格文件自动在sqlite中建表,并导入这个表格中的数据;
2、建立视图;
3、单表录入;
4、主从表数据录入;
5、根据数据表设计审核公式,实现边录边审以及批量审核;
6、根据数据表审计查询和汇总。
后面有时间了会进行完善,有兴趣参与测试的请留言。