微软Jet OLEDB连接到Excel丢失公式

3
我有一个数据集,使用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。
1个回答

0

Jet会为Excel提供数据集成。您可以读/写数据,但不包括公式、格式或其他任何内容。

要实现您想要的功能,您需要输出格式化的数据。您可以通过生成一个HTML文件并告诉客户端它是Excel来实现这一点,这将有效地工作,但会有一些小副作用。更好的选择是使用一个真正的Excel二进制写入程序。在此有很多选项:

导入和导出Excel - 最好的库是什么?


我正要问一个基本上相同的问题(关于在所有字段之前插入 ',而不管它们的数据类型如何)。人们会认为,由于 Ole 架构在我发出 Linq 查询时从我那里接收服务器类型信息,它至少应该知道不将 int 类型更改为字符串? - Reinderien
@Reinderien,在我多年编写Excel程序的经验中,我发现唯一不变的是常识从来不适用。 - Samuel Neff
我不同意,你可以在查询中包含一个公式,作为ADO DB记录集中的一列,然后使用CopyFromRecordset将结果集输出到工作表。 - Our Man in Bananas
@Philip,“CopyFromRecordset”是Excel VBA函数。它可用于自动化Excel,但不能在纯粹针对Jet引擎读写XLS文件的程序编写时使用。OP明确表示他们想要在可能没有安装Excel的计算机上使用他们的应用程序,而这需要Excel自动化和“CopyFromRecordset”。 - Samuel Neff
啊,我误解了,抱歉我的错 :) - Our Man in Bananas

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