【问题标题】:Microsoft Jet oledb connection to excel loses formulaeMicrosoft Jet oledb 与 Excel 的连接丢失公式
【发布时间】:2010-04-12 17:29:06
【问题描述】:

我有一个数据集,我使用 Microsoft Jet 4.0 Oledb 提供程序将它的值写入一个 excel 文件。我想将超链接放入excel,为此我在DS中写“=HYPERLINK(”http://www.abc.org/x.pdf“)”,然后将其写入excel。但是,当打开 excel 时,它会在公式之前添加一个 '(引号/撇号)前缀,并且它作为文本出现,而不是链接。你能帮我删除那个引用,以便我的 excel 文件有超链接而不是文本吗?

我需要使用 Microsoft Jet 4.0 提供程序(不是 excel 组件),因为客户端机器上可能安装或未安装 MS-Excel。

【问题讨论】:

    标签: c# ms-office oledb excel-formula export-to-excel


    【解决方案1】:

    Jet 将提供与 Excel 的数据集成。您可以读取/写入数据。不是公式或格式或其他任何东西。

    要做你想做的事,你需要输出格式化的数据。您可以通过生成一个 HTML 文件并告诉客户端它是 Excel 可以正常工作但有轻微的副作用来做到这一点。更好的选择是使用实际的 Excel 二进制编写器。这里有很多选择:

    Import and Export Excel - What is the best library?

    【讨论】:

    • 我正要问同样的问题(关于在所有字段之前插入的 ' ,无论其数据类型如何)。有人会认为,既然 Ole 架构在我发出 Linq 查询时从我那里接收服务器类型信息,它至少会知道不要将 int 的类型更改为字符串?
    • @Reinderien,在我多年的 Excel 编程经验中,我发现一个不变的事实是常识永远不会适用。
    • 我不同意,您可以在查询中包含一个公式,作为 ADO DB 记录集中的一列,然后使用 CopyFromRecordset 输出结果集到工作表
    • @Philip, CopyFromRecordset 是一个 Excel VBA 函数。它可以在自动化 Excel 时使用,但不能在编写纯粹针对 Jet 引擎的程序来读取/写入 XLS 文件时使用。 OP 特别表示他们想在可能没有安装 Excel 的计算机上使用他们的应用程序,这是 Excel 自动化和CopyFromRecordset 所必需的
    • 啊,我误会了,对不起:)
    猜你喜欢
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    相关资源
    最近更新 更多