如何使用微软互操作将工作表开头的新列添加到现有 excel
Posted
技术标签:
【中文标题】如何使用微软互操作将工作表开头的新列添加到现有 excel【英文标题】:How to add new column at the beginning of worksheet to an existing excel using microsoft interop 【发布时间】:2011-04-11 12:57:56 【问题描述】:我有一个 8 列的 Excel。我正在尝试在工作表的开头添加一个新列。现有的列应该移动。
下面是我试过的代码:
OpenExcelWorkbook(@"d:\TLC\TLC3.xlsx");
_sheet = (Excel.Worksheet)_sheets[1];
_sheet.Select(Type.Missing);
_sheet.Columns.Insert(1, 1);
但我收到以下错误:
为防止可能的数据丢失,Excel 无法将非空白单元格移出工作表。选择另一个位置以插入新单元格,或从工作表末尾删除数据。如果单元格中没有可移出工作表的数据,则可以重置 Excel 认为哪些单元格为非空白单元格。为此,请按 CTRL+End 以定位工作表上的最后一个非空白单元格。删除此单元格及其与数据的最后一行和最后一列之间的所有单元格,然后保存。
【问题讨论】:
【参考方案1】:将插入语句更改为
((Range) workSheet.Columns[1]).Select();
((Range) workSheet.Columns[1]).Insert(XlInsertShiftDirection.xlShiftToRight,
XlInsertFormatOrigin.xlFormatFromLeftOrAbove);
【讨论】:
【参考方案2】:以下代码对我有用...
OpenExcelWorkbook(FileUpload1.PostedFile.FileName);
_sheet = (Excel.Worksheet)_sheets[1];
_sheet.Select(Type.Missing);
//Insert a column
_sheet.get_Range("A1", "A500").Insert(Type.Missing, Type.Missing);
【讨论】:
以上是关于如何使用微软互操作将工作表开头的新列添加到现有 excel的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:如何根据从另一个表中选择的值填充现有表的新列[关闭]
C#互操作:将新工作表添加到现有文件后,excel进程未退出[重复]