【发布时间】:2012-08-17 15:26:30
【问题描述】:
我正在将数据从 CxDBGrid 导出到 Excel 文件。 我能够创建文件并在其中复制数据,但我在列格式方面遇到了真正的问题。由于我从数据库中提取数据,因此我希望电子表格能够反映以下类型:NUMBER、VARCHAR2、DATE 等等。 我直观地创建了一个宏,去寻找 VBA 代码,并在 Delphi 项目中复制它:
sheet.Columns[K+2].NumberFormat := '0,000'; //Number
sheet.Columns[K+2].NumberFormat := '@'; //Text
sheet.Columns[K+2].NumberFormat := 'm/d/yyyy'; //Date
数字格式在大多数情况下都可以正常工作,但其他两种则不行。 当我打开生成的文件时,文本列显示为“自定义”类型,每个单元格显示“-64”。如果我去编辑一个单元格,正确的值实际上就在那里。 日期是另一个问题:数据库的格式是 dd/mm/yyyy,如果我按原样将它提供给 Excel,它就会一团糟。我尝试设置正确的格式,但 Excel 无法识别它。
有什么线索吗?
我也在设置列宽。这完美无缺。
【问题讨论】:
-
我假设当您说 cxDbGrid 时,您指的是 Developer Express 组件。如果是这样,您是否使用 Developer Express 提供的 ExportGridToExcel() 过程导出到 Excel?
-
我试过了,但是设置数据类型有问题。这就是为什么我想手动做事
-
我在很多地方都使用了 ExportGridToExcel(),没有任何与数据类型或导出格式相关的问题。如果没有看到您的代码,很难弄清楚它为什么不适合您。与其费心编写自己的导出,我会在 Developer Express 支持网站上询问他们是否可以帮助您。他们的支持很棒,通常他们可以很快为您提供解决方案。
标签: delphi excel delphi-xe2 quantumgrid