Excel Lazarus的实现

Excel Lazarus的实现,excel,export-to-excel,lazarus,openoffice-calc,Excel,Export To Excel,Lazarus,Openoffice Calc,我需要将一些表中的数据导出到excel文件中。问题是,唯一有效的扩展名是“.xls”,它太旧了。因此,当我打开此文件时,它将以受保护的退出模式显示,即使我取消选中Excel受保护的退出模式选项中的所有框 我不知道为什么我不能保存在其他扩展中,比如.xlsx,因为如果我使用本机函数保存为.xlsx:STR\uooxml\uexcel\u扩展名,或者只写.xlsx,它会保存,但不会打开文档。 显示此消息:Excel无法打开文件“file.xlsx”B,因为格式或扩展名无效。检查文档是否损坏或扩展名是

我需要将一些表中的数据导出到excel文件中。问题是,唯一有效的扩展名是“.xls”,它太旧了。因此,当我打开此文件时,它将以受保护的退出模式显示,即使我取消选中Excel受保护的退出模式选项中的所有框

我不知道为什么我不能保存在其他扩展中,比如
.xlsx
,因为如果我使用本机函数保存为
.xlsx
STR\uooxml\uexcel\u扩展名
,或者只写
.xlsx
,它会保存,但不会打开文档。 显示此消息:Excel无法打开文件“file.xlsx”B,因为格式或扩展名无效。检查文档是否损坏或扩展名是否与文件格式匹配

这是我用来创建文件的代码:

   MyWorkbook := TsWorkbook.Create;
      try
        MyWorksheet := MyWorkbook.AddWorksheet('Orçamento'); 
这是我用来保存的:

     MyWorkbook.WriteToFile(MyDir + orcamento + '.xls', OUTPUT_FORMAT, True);
 finally
    MyWorkbook.Free; 
我能想到的唯一选择是使用另一个软件包,Excel或OpenOffice可能会有所帮助。


设置:Lazarus 1.4.2,带FPC 2.6.4和fpSpreadsheet 1.6.0,在Windows 7 64位上运行。

我不确定变量或常量输出\u格式包含什么,但如果指定格式,则应为以下格式之一:

sfExcel2, sfExcel5, sfExcel8, sfOOXML, sfOpenDocument,
sfCSV, sfHTML, sfWikiTable_Pipes, sfWikiTable_WikiMedia
因此,如果要另存为.xlsx,可以这样做(使用sfOOXML作为格式):

您也可以这样做:

uses fpspreadsheet, fpstypes, xlsxooxml;
//...
MyWorkbook.WriteToFile(MyDir + orcamento + '.xlsx', True);
它将自动检测.xlsx扩展名并保存正确的格式


您确实需要在uses子句中包含xlsxooxml,因为该单元(自动)注册xlsx格式。

请向我们提供更多详细信息,说明为什么您不能将电子表格保存为除
以外的其他格式。xls
@Abelisto我更新了我的问题
uses fpspreadsheet, fpstypes, xlsxooxml;
//...
MyWorkbook.WriteToFile(MyDir + orcamento + '.xlsx', True);