【问题标题】:How to write multiple sheets in Excel using TSMExportToXls Delphi component如何使用 TSMExportToXls Delphi 组件在 Excel 中编写多张工作表
【发布时间】:2015-01-16 06:26:10
【问题描述】:

我正在使用TSMExportToXls 组件从数据集中写入 Excel 文件。我在 Excel 文件中编写不同的工作表时遇到困难。它适用于单张文件。我不知道如何在多张纸上写。 下面是我的代码。任何帮助将不胜感激。

procedure TfrmXLSExport.btnExportClick(Sender: TObject);
begin
  SMExportToXLS1.Header.Add('New Sheet Data');
  SMExportToXLS1.Execute;
end;

我创建了TTable 对象,填充了其中的数据并将其设置为TSMExportToXls 的DataSet 属性

【问题讨论】:

  • 组件是否附带任何文档或示例代码?
  • 是的,它带有文档和示例代码,但我没有找到任何演示代码来使用提到的组件创建具有多个工作表的 Excel 文件。谢谢。
  • @HeartWare。感谢您的努力,但它的 TSMExportToXls 组件不是 TMSExportToXls,谢谢 :)
  • 文档说下面一行“这个组件不使用 MS Excel 应用程序作为 OLE 服务器并且速度非常快,但是这个组件不支持字体/颜色导出 - 您只能导出数据 (具有对齐方式和列宽)。”
  • 你问过供应商了吗?我相信他们知道答案。

标签: delphi delphi-7 export-to-excel delphi-6


【解决方案1】:

在 SMExport 中,您可以使用 TSMExportToExcel 组件来创建多表工作簿。 您可以在 DEMOS\Merge\XLS 目录中查看示例项目

【讨论】:

  • 谢谢@Mike,但我不想使用 Excel Ole。 TSMExportToExcel 利用 Excel Ole。
  • TSMExportToXls 的 255 个字符限制是多少?这是否意味着我不能在 Excel 单元格中写入超过 255 个字符。 ?
【解决方案2】:

作为替代方案,您可以使用 TSMExportToXLSX 组件来生成 xlsx 文件。 但 TSMExportToXLS 不支持合并功能。

【讨论】:

    【解决方案3】:

    我使用这个代码(Delphi):

    procedure TFormMain.ExportExec(aDataSet: TDataSet; aSheetName: string);
    var FirstTime : integer;
    begin
      Inc(FirstTime);
      //use this code to delete default worksheets but only the first time instead 
      //it will delete those newly created
      if FirstTime = 1 then
        XLS.DeleteDefaultSheets := True
      else
        XLS.DeleteDefaultSheets := False;
    
      XLS.DataSet := aDataSet;
      XLS.KeyGenerator := aSheetName;
      XLS.Execute;
    end;
    

    这就是我设置 TSMExportToExcel 组件的方式。

    希望对您有所帮助! :D

    【讨论】:

      猜你喜欢
      • 2021-03-29
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多