【问题标题】:Delphi save richedit as excelDelphi将richedit另存为excel
【发布时间】:2010-10-26 05:44:29
【问题描述】:

您将如何将 TRichedit 文本保存到 Excel 文件中?

我的数据用垂直标签 #9 分隔,如果我将其保存为 .xls,它会打开,但我想省去用户在打开后再次将其保存为 excel 的麻烦。

谢谢, 戴夫·阿尔伯特

【问题讨论】:

    标签: delphi


    【解决方案1】:

    有很多方法可以做到这一点。您的问题对于您正在使用的数据类型不是很准确,因此您应该注意,除非您使用文本框,否则 Excel(特别是基于 Excel 版本)可能存在显示大量 RichEdit 数据的限制。既然你说你有数据分隔,我假设这实际上是一个类似表格的结构,它不包含图片等。根据该假设,您可以使用:

    • OpenOffice 作为 skamradt 提到的解决方案。您应该知道,它不是 ActiveX,而是使用 IMO,一个记录不充分的 OLE 接口。如果你这样做,你会发现Andrew Pitonyak's site 真的很有帮助。您还需要从 SourceForge 获取 Bernard Marcelly 的 Delphi OO samples 作为一个不错的起点。
    • 使用 Excel 作为 OLE 自动化对象。有很多关于如何做到这一点的例子。 here 可能与您想要的指南相似。这可能是最简单的解决方案,因为您可以通过自动化打开选项卡式数据,然后执行另存为。
    • 使用 RichEdit 以外的其他工具。例如,DevExpress 有一个带有 Excel 转换器的网格产品。 Excel 是某些类型组件的常见目标,尤其是在购买的软件包中,但我不确定您的项目是否可以接受。

    【讨论】:

    • 非常感谢,作为 OLE 自动化对象的 Excel 提供了帮助。
    【解决方案2】:

    我会考虑使用office open xml format。它也很容易编程,并且可以让您最大程度地控制您的输出。 OpenXML Developer 网站是一个很好的参考。

    【讨论】:

      【解决方案3】:

      我会使用 xls 文件扩展名保存制表符分隔的文本 - 这是一个杂项。

      我发现以逗号分隔的格式保存表格数据效果很好,并且经常使用这种解决方案,原因如下:

      • 如果安装了 Excel,通常会关联 .csv 文件扩展名,因此双击可以正常工作,而不会“伪造”文件扩展名
      • 如果 Excel 未安装或未与 .csv 关联,则用户可能有另一个与 .csv 扩展名关联的程序,此解决方案仍然有效

      【讨论】:

      • 我绝对同意不使用假文件扩展名。
      • 我不反对,但这是杂乱无章的情况(我是临床应用分析师而不是开发人员)感谢大家的意见。
      【解决方案4】:

      查看 XLSReadWrite 组件 (http://www.axolot.com/components/xlsrwii20.htm)。它提供了一个 API,您可以在其中直接保存到 xls 文件,而无需安装 excel 或任何外部依赖项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-15
        • 2020-05-06
        • 2014-05-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多