【问题标题】:C++ Builder DBGrid export to Excel in xlsx fileC++ Builder DBGrid 在 xlsx 文件中导出到 Excel
【发布时间】:2018-01-12 02:13:00
【问题描述】:

以前,我总是使用 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);

}

【问题讨论】:

  • 我建议使用 TDataset。您可以通过 ADO 直接保存为 Excel 文件。如何设置连接字符串外观here

标签: c++ excel delphi c++builder


【解决方案1】:

我不喜欢发布建议使用另一个 3rd-party 库的答案,但在这种情况下它可能是合适的。

见:http://www.scalabium.com/sme/

这是一个库,可以将数据库数据从 Delphi 应用程序导出为多种格式,包括 Excel 文件格式。它不使用 COM,因此不受 Excel 的 COM 实现所施加的限制,尽管我不确定 TXLSWorkBook 是否使用 COM。 AFAIK,SMExport 直接写入 Excel 格式的文件。

有一个可用的试用版,iirc。

【讨论】:

  • 感谢您的分享!
  • 但是我们可以在没有第三方源的情况下导出为 xlsx 文件吗?
  • 如果您知道如何编写自己的代码来将数据写入 xlsx 格式的文件,那么当然可以。我认为 MS 已经发布了规范。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2018-07-18
相关资源
最近更新 更多