【发布时间】:2014-11-18 22:38:12
【问题描述】:
我正在使用 Office Interop(不能使用 OOXML)并且想要将表格从 Excel 文件复制到 RTF 文件中。
首先我将表格复制到 Excel 中
excelSheet = excelBook.Worksheets[1];
excelBook.CheckCompatibility = false;
excelRange = excelSheet.Range["B12:F21"];
excelRange.Copy();
然后在 Word 中(打开 RTF)我粘贴它
wordApplication.Selection.Find.Execute(placeholder);
WordRange range = wordApplication.Selection.Range;
if (range.Text.Contains(placeholder))
range.Paste();
占位符包含我用作代码的文本,以了解将其粘贴到何处
现在,在那个 excel 表中,我的单元格格式为货币,因此它们包含 3,56 € 形式的数据,但粘贴后,我在 Word(RTF 文件)中的内容是 3.56 $- 请注意 @ 的变化987654325@ 到 . 和从 € 到 $
但是,如果我手动执行所有这些操作(在 Excel 中打开 Excel 文件,从表格中选择所有单元格,按 ctrl+C,在 Word 中打开 RTF,定位光标并按 ctrl+V - 我得到正确的值(欧元)。
任何想法我如何像手动一样以编程方式完成这项工作?
【问题讨论】:
-
你不能在
Paste的重载中指定文化吗? -
@JensKloster nope - 粘贴不接收参数并且没有重载
-
您必须使用 Office 自动化将数据放入 Word 文档吗?您是否可以在 C# 代码中创建或修改 .rtf 文件? RTF 对于创建简单文档或修改样板文档来说并不是那么复杂。然后启动 Word 以显示结果。
-
@JensKloster 可能是的 - 我通过将 rtf 视为文本文件来使用其他替代品 - 但我将如何以这种方式从 Excel 粘贴内容?
标签: c# office-interop