使用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 $
- 通知从,
更改为.
以及从€
更改为$
但是,如果我手动执行所有操作(在Excel中打开Excel文件,从表格中选择所有单元格,请按ctrl+C
,在Word中打开RTF,定位光标并按ctrl+V
- i得到正确的价值(欧元)。
任何想法我如何按照手动方式进行编程工作?
答案 0 :(得分:0)
所以我找到了一点解决方法 - 多亏了@JensKloster的想法
粘贴表格后(如问题所示)我将rtf作为文本加载到变量中并应用以下内容:
cnt = Regex.Replace(cnt, @"(?<main>\d+)\.(?<decimals>\d{2,3})", "${main},${decimals}").Replace("$", "€");
这种接缝可以完成这项工作(至少现在我发现当前使用的rtf模板没有问题 - 尽管将来可能会出现问题
等待更聪明的人给我一个更好的选择,这将成为答案