如何使用微软互操作将工作表开头的新列添加到现有 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进程未退出[重复]

如何将新列添加到现有表 symfony - orocommerce

在迁移中向现有表添加新列