没有excel从Delphi导出到excel
Posted
技术标签:
【中文标题】没有excel从Delphi导出到excel【英文标题】:Exporting to excel from Delphi without having excel 【发布时间】:2011-01-30 09:17:50 【问题描述】:我希望将数据从 Delphi 导出到 Excel,而不必拥有 Excel 副本,这可能吗?
注意CSV 不行。
【问题讨论】:
【参考方案1】:FlexCel,早期的开源现在由 TMS (http://www.tmssoftware.com/site/flexcel.asp) 管理,效果很好。
您也可以通过http://www.torry.net 查看 TmxNativeExcel。免费提供,使用原生 Biff 格式。不过我没试过。
【讨论】:
【参考方案2】:试试zexmlss。该库可以创建和加载 excel 2003 XML 格式文件。支持合并单元格、边框、纵横对齐等。 Zlib 许可证。使用 delphi 6、7、9-14 和 lazarus。
【讨论】:
备案:lib 已移至 GitHub 并拥有一台 fork ATM。我和 Avemey 现在都没有时间收敛这些变化。他主要专注于 FPC 和 ODS 格式,而我必须在 XE2 和 XLSX 上工作。显然我们对编码风格有不同的品味:-) 我可以推荐zexmlss - 似乎适用于 XLSX 和 ODT,可以进行格式设置、公式,而且它是免费的。我必须对代码进行小 更改才能使其在 Delphi 10 Seattle 中编译,但它正在摇摆 我试过但失败了——zip工具有问题,无法添加。【参考方案3】:我相信可以将 MS Office 文档创建为 html。您不需要在网络浏览器中打开它们或其他任何东西,文件仍然可以具有扩展名 .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>
【讨论】:
似乎是一个很好的解决方案,谢谢马特。在 Excel 2003 中工作,但我不确定用户是否必须安装 Office 2010 的兼容性下载,才能使用您建议可用的 HTML 格式。有人用其他 Office 版本尝试过吗? 很酷,你帮我节省了数小时的图书馆搜索时间【参考方案4】:oExport - XLSX/ODS 原生 Delphi 导入/导出库
不需要外部 dll 库 不依赖 Excel 或 Calc 安装(无 OLE) 即使是 D7、D2007 也完全支持 Unicode 支持的单元格类型:字符串、数字、百分比、公式、时间、日期、日期时间 单元格格式:单元格宽度+高度、水平+垂直对齐、自动换行、字体、背景颜色、边框 列/行跨度 在 Delphi 2007 和 XE2 32bit+64bit 下测试和工作:应该与所有 D7 到 XE2 兼容 新的 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
【讨论】:
请不要在很多问题中添加这个。 虽然不是(或不再)开源 OExport 无法编译 - 未找到 OWideSupport 单元!【参考方案5】:来自 Scalabium (scalabium.com) 的 SMExport 包括许多格式,包括安装或未安装 Excel 的 Excel 格式。
【讨论】:
【参考方案6】:前面提到的 NativeExcel 来自 Nika-Soft。不是免费的,但它工作正常。我现在使用它已经一年多了,没有任何问题。 http://www.nika-soft.com/nativeexcel2/
【讨论】:
【参考方案7】: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
【讨论】:
【参考方案8】:这是实现此目的的一种非常简单的方法,即使用文本文件。只需输出数据,每个字段后跟一个逗号,然后是一个回车。使用 .CSV 扩展名保存此文件。这应该仍然适用于 Excel;这些天我使用 Open Officw
【讨论】:
OP 说:“N.B. CSV 不行。”以上是关于没有excel从Delphi导出到excel的主要内容,如果未能解决你的问题,请参考以下文章