以前,我总是使用TXLSWorkbook 和SaveDialog 从DBGrid 中导出excel(.xls)。
但是,现在导出的数据太大,.xls文件无法填满所有数据。
我尝试导出 .xlsx 文件,但 TXLSWorkbook 似乎不支持 .xlsx 文件。
当我打开 .xlsx 文件时,错误消息说文件已损坏。
我是不是错过了什么,或者我必须找到另一种方法来导出 .xlsx 文件?
这是我的代码。感谢收看。
TXLSWorkbook *WorkBook;
IXLSWorksheet *WorkSheet;
IXLSRange *Cells;
int Row;
TDateTime dt=Now();
String date = dt;
date = FormatDateTime("yyyymmdd",date);
FileName = date+".xls";
WorkBook = new TXLSWorkbook();
WorkSheet = WorkBook->Sheets->Add();
Cells = WorkSheet->Cells;
.
.
.
(input item to Cells...)
.
.
.
SaveDialog1->FileName = FileName;
if( SaveDialog1->Execute() == true ) {
WorkBook->SaveAs(SaveDialog1->FileName);
}
最佳答案
我不喜欢发布建议使用另一个 3rd 方库的答案,但在这种情况下它可能是合适的。
参见:http://www.scalabium.com/sme/
这是一个库,可以将数据库数据从 Delphi 应用程序导出为多种格式,包括 Excel 文件格式。它不使用 COM,因此不受 Excel 的 COM 实现强加的限制,但我不确定 TXLSWorkBook 是否使用 COM。据我所知,SMExport 直接写入 Excel 格式的文件。
有可用的试用版,iirc。
关于C++ Builder DBGrid 在 xlsx 文件中导出到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45501720/