2017-08-04 13 views
0

以前は、TXLSWorkbookとSaveDialogを使用してDBGridからexcel(.xls)をエクスポートしていました。C++ Builder xlsxファイルのExcelへのDBGridエクスポート

エクスポートされたデータが大きすぎると、.xlsファイルですべてのデータを埋め込むことができません。

TXLSWorkbookは.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); 

} 

+0

TDatasetの使用をお勧めします。 ADOを介してExcelファイルとして直接保存することができます。接続文字列の設定方法[ここ](https://www.connectionstrings.com/excel/) –

答えて

1

私は別のサードパーティのライブラリを使用するための推奨である答えを投稿し好きではないが、この場合には、それはおそらく適切です。

参照:http://www.scalabium.com/sme/

これは、Excelのファイル形式など、さまざまな形式にDelphiのアプリケーションからデータベースのデータをエクスポートすることができライブラリです。それはCOMを使用しないので、ExcelのCOM実装によって課せられた制限の対象ではありませんが、TXLSWorkBookがCOMを使用するかどうかはわかりません。 AFAIK、SMExportはExcel形式のファイルに直接書き込みます。

iircの試用版があります。

+0

共有いただきありがとうございます! – kim

+0

しかし、サードパーティのソースなしでxlsxファイルにエクスポートできますか? – kim

+0

データをxlsx形式のファイルに書き込むための独自のコードを書く方法が分かっている場合は、それを確認してください。私はMSが仕様書を公開したと思う。 – MartynA

関連する問題