delphi转excel
1个回答
展开全部
我用Delphi做过Excel类似的报表,当时也发现直接控制生成数据透视表非常困难。后来问题解决了,方法如下,可以供你参考:
1、先建立好Excel模板,模板中sheet2已做好了数据透视表,且各栏位的属性等都已设置OK,只是数据是空的;保存在程序可以访问到的地方;
2、模板的sheet1中的数据至少先放上两行。两行是指数据透视表引用了这两行,这两行当然可以空数据;
3、Delphi控制Excel数据填写时,先填写第一行数据,后续数据是先在第一行与第二行之间插入空行,再填写;这样sheet2的数据透视表在刷新时会自动跟着变的,所以就不用关心数据透视表的问题了。(最后可能需要删除最后一个空行)
打开模板的语句是:
workbook:=eclapp.workbooks.add('报表模板.xls');
保存的时候,用自己生成的文件名,或用户输入的文件名,即可。
==============================
数据透视表刷新倒是个问题,不像一般的图表会自动刷新。
数据透视表刷新的宏语句是(sheet2为当前工作表):
ActiveSheet.PivotTables("数据透视表1").PivotCache.Refresh
你可以试试,把这句改改放到Delphi中调用,使之在保存文件之前刷新。这我没试过,你得研究一下了。
Good
Luck!
1、先建立好Excel模板,模板中sheet2已做好了数据透视表,且各栏位的属性等都已设置OK,只是数据是空的;保存在程序可以访问到的地方;
2、模板的sheet1中的数据至少先放上两行。两行是指数据透视表引用了这两行,这两行当然可以空数据;
3、Delphi控制Excel数据填写时,先填写第一行数据,后续数据是先在第一行与第二行之间插入空行,再填写;这样sheet2的数据透视表在刷新时会自动跟着变的,所以就不用关心数据透视表的问题了。(最后可能需要删除最后一个空行)
打开模板的语句是:
workbook:=eclapp.workbooks.add('报表模板.xls');
保存的时候,用自己生成的文件名,或用户输入的文件名,即可。
==============================
数据透视表刷新倒是个问题,不像一般的图表会自动刷新。
数据透视表刷新的宏语句是(sheet2为当前工作表):
ActiveSheet.PivotTables("数据透视表1").PivotCache.Refresh
你可以试试,把这句改改放到Delphi中调用,使之在保存文件之前刷新。这我没试过,你得研究一下了。
Good
Luck!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询