从Delphi导出Excel而不需要安装Excel

17

我想在没有Excel副本的情况下从Delphi导出数据到Excel,这可能吗?

注意,CSV文件无法满足要求。

8个回答

12

12

试试zexmlss。这个库可以创建和加载excel 2003 XML格式文件,支持合并单元格、边框、垂直和水平对齐等功能。采用Zlib许可证。适用于Delphi 6、7、9-14和Lazarus。


记录一下:lib已经迁移到GitHub,并且目前只有一个分支。我和Avemey现在都没有时间去合并更改。他主要关注FPC和ODS格式,而我则必须处理XE2和XLSX。显然,我们对编码风格有不同的偏好 :-) - Arioch 'The
我可以推荐zexmlss - 似乎很适合XLSX和ODT,可以进行格式化、公式等操作,而且是免费的。我不得不对代码进行了一个“小”更改,以便在Delphi 10 Seattle中编译,但它非常好用。 - Reversed Engineer
我已经尝试过但失败了 - 压缩设施存在问题,无法添加。 - TomR

7
我相信可以将MS Office文档创建为HTML格式。您不需要在Web浏览器中打开它们,文件仍然可以具有扩展名.xls,并像常规一样在Excel中打开。
我刚刚创建了一个新的电子表格,并将数字1-3粘贴到A列的前三个单元格中,然后将其保存为HTML。可能有很多额外的混乱,这些都不是必需的。我尽量删除了尽可能多的内容,以下是看起来足以生成工作电子表格的最少要求。
请尝试创建一个包含此内容的新文本文件,并将其保存为.xls扩展名。
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!--[if gte mso 9]><xml>
 <x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name>Sheet1</x:Name>
    <x:WorksheetOptions>
     <x:Selected/>
     <x:Panes>
      <x:Pane>
       <x:Number>3</x:Number>
       <x:ActiveRow>3</x:ActiveRow>
      </x:Pane>
     </x:Panes>
     <x:ProtectContents>False</x:ProtectContents>
     <x:ProtectObjects>False</x:ProtectObjects>
     <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
 </x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>

<table x:str>
    <tr>
        <td x:num width=64>1</td>
    </tr>
    <tr>
        <td x:num>2</td>
    </tr>
    <tr>
        <td x:num>3</td>
    </tr>
</table>
</body>
</html>

看起来是个很好的解决方案,谢谢Matt。在Excel 2003中可以工作,但我不确定用户是否需要安装兼容性下载才能使用你提出的HTML格式。有人尝试过在其他Office版本中使用吗? - Manuel Gonzalez
酷,你节省了我数小时的查找库的时间。 - Michael Gendelev

6

oExport - XLSX/ODS原生Delphi导入/导出库

  • 无需外部dll库
  • 不依赖于Excel或Calc安装(无OLE)
  • 即使在D7、D2007中也支持全Unicode
  • 支持的单元格类型:字符串、数字、百分比、公式、时间、日期、日期时间
  • 单元格格式:单元格宽度+高度、水平+垂直对齐、自动换行、字体、背景颜色、边框
  • 列/行跨度
  • 已在Delphi 2007和XE2 32位+64位下测试并工作:应与所有D7到XE2兼容
  • NEW OFiller: 填充DOCX(Word 2007)、ODT(OpenOffice Writer)、XLSX(Excel 2007)、ODS(OpenOffice Calc)模板

http://www.kluug.at/xlsx-ods-delphi.php

根据MPL/GPL/LGPL三重许可证授权 版本:MPL 1.1/GPL 2.0/LGPL 2.1


请不要在很多问题中添加此内容。 - user1228
9
虽然不是开源的(或不再是开源的)。 - Eric Grange
OExport无法编译 - 找不到OWideSupport单元! - TomR

2

来自Scalabium的SMExport(scalabium.com)包含许多格式,包括安装或未安装Excel的Excel格式。


0

TXLSFile库 v.4.0 和 XLSExport组件

我们已成功地在D2007、D2009和D2010上使用过。

什么是TXLSFile

  TXLSFile is a Delphi library for reading and writing MS Excel 
  XLS files. It is based on direct reading and writing of files, 
  and works without OLE Automation with Microsoft Excel. 

  TXLSFile is  distributed  with  XLSExport  components  package. 
  XLSExport is a Delphi components package  for quick data 
  export  into  MS Excel file with  one line  of code.  

http://sm-software.com


0

-1

有一种非常简单的方法可以实现这个目标,就是使用文本文件。只需输出数据,每个字段后跟一个逗号,然后是一个回车符。将此文件保存为 .CSV 扩展名。这在 Excel 上仍然有效;我现在使用的是 Open Office。


1
OP说:“注意,CSV格式行不通。” - Reversed Engineer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接