如何从Excel工作表中复制非空单元格?

时间:2012-11-13 05:33:12

标签: c# excel ms-word office-interop

我正在编写一个将Excel工作表粘贴到Word文档中的C#应用​​程序。

using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;

Excel.Worksheet ws = wb.Worksheets[1];        
// select all then copy to clipboard
ws.get_Range("a1").EntireRow.EntireColumn.Copy();
var wordApp = new Word.Application();
wordApp.Visible = true;
wordApp.Documents.Add();
wordApp.Selection.PasteSpecial(Link: true);

上面的代码工作正常,但默认情况下Word将对象粘贴为HTML,这会弄乱文档布局。

所以我尝试了手动粘贴(ctrl-alt-v)并选择了“Microsoft Office Excel 2003工作表对象”(期望这也可以通过C#完成),这次粘贴整个工作表(65535 * 65535)重要的细胞最小化。

工作表包含图表和位图,因此很难计算图表/位图末尾下方的单元格坐标。

是否有任何快捷方式只能选择Excel中的非空单元格?

1 个答案:

答案 0 :(得分:0)

是否有任何快捷方式只能选择Excel中的非空单元格? - 是的尝试做:wholeRange = sheet.Cells.SpecialCells(XlCellType.xlCellTypeConstants, Type.Missing);。要测试此功能,您可以点击F5-> Special ..并尝试其他选项。