有没有办法以编程方式将 Excel 单元格保存到可以加载的本地文件,就像使用 VSTO 的“复制和粘贴”一样?

Posted

技术标签:

【中文标题】有没有办法以编程方式将 Excel 单元格保存到可以加载的本地文件,就像使用 VSTO 的“复制和粘贴”一样?【英文标题】:Is there any way to programaticallly save Excel cell to local files that could be load just like "copy and paste" with VSTO? 【发布时间】:2021-10-11 20:26:39 【问题描述】:

这些天我一直在使用 Excel VSTO Add-in,我需要从数据库中加载一些模板,并将它们填充到 Excel 单元格中。

问题是我只能以纯文本形式存储数据,如果我尝试复制和粘贴目标单元格并将其存储在记事本(或其他编辑器)中的某个位置,样式和格式将会丢失。

有什么方法可以将带有样式的单元格数据保存到某个二进制本地文件(或其他文件)中,并且当我需要它时,我可以将它加载并填充到目标单元格中​​,就像我刚刚从一些其他单元格。

谢谢!

PS:文本可能有不同的样式,因此单元格格式的存储可能不起作用,

我在这里附上了一个例子:

【问题讨论】:

您可以使用 excel VBA 将单元格/范围的内容和格式设置作为对象复制到文件中,然后进行后处理 @luizbarcelos 好的,谢谢,我会试一试,但是有没有办法用 VSTO 和 C# 解决它? 恕我直言,(这是一条值得挖掘的路径..)-> 按照@luizbarcelos 的建议找到/执行成功的 VBA 代码,然后通过 (1) 按钮“触发”加载它(简单复制/应用到其他文件)(2)在每个文件打开时自动运行(2)其他语言/工具(C#、批处理、powershell或vbs)的代码以“调用”成功的带有格式的复制代码。 【参考方案1】:

我终于解决了

Range.Value[XlRangeValueDataType.xlRangeValueXMLSpreadsheet]

它将单元格存储为 XML,包含我需要的所有样式。

【讨论】:

以上是关于有没有办法以编程方式将 Excel 单元格保存到可以加载的本地文件,就像使用 VSTO 的“复制和粘贴”一样?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式(VBA,C#)将数组字符串设置为范围时,奇怪的单元格中字符数限制

Excel - 编程单元格以根据另一个单元格更改颜色

Excel:如何创建快捷方式/浮动按钮以从工作表中的任何位置填充特定单元格?

如何使用 EPPlus 设置 XLSX 单元格宽度?

如何通过Java 合并和取消合并 Excel 单元格

如何在没有故事板的情况下以编程方式将单元格添加到 CollectionView