.Net中是否有免费的库支持删除整个excel列?

我想find一个支持在excel中删除整列和行的库。 不幸的是,EPPLUS和NPOI没有支持这一点,他们的路线图没有提到这个function。

目前,我把宽度和高度设置为零,但这不是最好的解决scheme。 .Net中是否有免费的库支持删除整个excel列?

在项目中引用Microsoft Excel 10.0对象库。

设置如下使用语句:

using Excel = Microsoft.Office.Interop.Excel; 

在你的类中,声明以下variables:

 private Excel.Application _app; private Excel.Workbooks _books; private Excel.Workbook _book; protected Excel.Sheets _sheets; protected Excel.Worksheet _sheet; 

然后按以下方法打开工作簿:

 protected void OpenExcelWorkbook(string fileName) { _app = new Excel.Application(); if (_book == null) { _books = _app.Workbooks; _book = _books.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); _sheets = _book.Worksheets; } } 

确保您有一个将closures工作簿的方法

 protected void CloseExcelWorkbook() { _book.Save(); _book.Close(false, Type.Missing, Type.Missing); } 

并且您需要一个方法来清理对Excel对象的引用(因为它们是COM),否则Excel将继续运行。

 protected void NAR(object o) { try { if(o != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(o); } finally { o = null; } } 

现在,您可以select要删除行的工作表:

 OpenExcelWorkbook(@"d:\temp\yourworkbook.xls"); _sheet = (Excel.Worksheet)_sheets[1]; _sheet.Select(Type.Missing); Excel.Range range = _sheet.get_Range("A7:A7", Type.Missing); range.Delete(Excel.XlDeleteShiftDirection.xlShiftUp); NAR(range); NAR(_sheet); CloseExcelWorkbook(); NAR(_book); _app.Quit(); NAR(_app);