Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将单元格从Excel复制到Word时如何保持单元格格式_C#_Excel 2007_Office Interop_Word 2007 - Fatal编程技术网

C# 将单元格从Excel复制到Word时如何保持单元格格式

C# 将单元格从Excel复制到Word时如何保持单元格格式,c#,excel-2007,office-interop,word-2007,C#,Excel 2007,Office Interop,Word 2007,目前,我正在使用OleDB连接Excel电子表格,在DataTable中获取数据,对数据进行一些修改,然后将数据复制到Word 这样做会丢失单元格的格式,比如文本的任何部分是彩色的,背景颜色是灰色的,或者是粗体的 我正在使用Interop库与word进行通信,并使用Excel与OLEDB进行通信 如果这个解决方案不足以满足我的需要,你能建议其他解决方案吗?(宏?) 我试过使用Interop.Excel.Styles,但我不知道如何将其与当前使用的单元格关联起来。是的,这是必然的。OleDB移动数

目前,我正在使用
OleDB
连接Excel电子表格,在
DataTable
中获取数据,对数据进行一些修改,然后将数据复制到Word

这样做会丢失单元格的格式,比如文本的任何部分是彩色的,背景颜色是灰色的,或者是粗体的

我正在使用Interop库与word进行通信,并使用Excel与OLEDB进行通信

如果这个解决方案不足以满足我的需要,你能建议其他解决方案吗?(宏?)
我试过使用Interop.Excel.Styles,但我不知道如何将其与当前使用的单元格关联起来。

是的,这是必然的。OleDB移动数据,而不是格式化信息。如果需要格式化,则必须将Excel复制/粘贴到Word。如果您需要自动化该过程,VBA是从外部控制Excel和Word的最简单方法。

我们将表格的范围复制到电子表格中,并直接粘贴到Word文档中,从而保留格式

wordDoc.Tables.Add(b.Range,newsheet.UsedRange.Rows.Count,newsheet.UsedRange.Columns.Count);
Microsoft.Office.Interop.Word.Table table = b.Range.Tables[1];
newsheet.UsedRange.Copy();
table.Range.Select(); 
wordApp.Selection.Paste();

wordDoc是Word.Document,wordApp是Word.Application。希望这有帮助

可以在保留格式的情况下使用互操作库,但由于我需要执行某些操作,我在这方面遇到了障碍。