如何使用microsoft interop在工作表的开头将新列添加到现有的Excel中

时间:2010-09-13 07:23:09

标签: .net excel office-interop

我有一个有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以找到工作表上的最后一个非空单元格。删除此单元格及其与数据的最后一行和列之间的所有单元格然后保存。

2 个答案:

答案 0 :(得分:2)

将插入语句更改为

((Range) workSheet.Columns[1]).Select();
((Range) workSheet.Columns[1]).Insert(XlInsertShiftDirection.xlShiftToRight,
                                            XlInsertFormatOrigin.xlFormatFromLeftOrAbove);

答案 1 :(得分:1)

以下代码对我有用......

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);