1
我想找到一個支持在Excel中刪除整列和行的庫。不幸的是,EPPLUS和NPOI沒有支持這一點,他們的路線圖沒有提到這個功能。.Net中是否有任何免費的庫支持刪除整個excel列?
目前,我將寬度和高度設置爲零,但它不是最好的解決方案。 .Net中是否有免費的庫支持刪除整個excel列?
我想找到一個支持在Excel中刪除整列和行的庫。不幸的是,EPPLUS和NPOI沒有支持這一點,他們的路線圖沒有提到這個功能。.Net中是否有任何免費的庫支持刪除整個excel列?
目前,我將寬度和高度設置爲零,但它不是最好的解決方案。 .Net中是否有免費的庫支持刪除整個excel列?
在項目中引用Microsoft Excel 10.0對象庫。
設置以下using語句:
using Excel = Microsoft.Office.Interop.Excel;
在你的類中,聲明以下變量:
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;
}
}
品牌:
private Excel.Application _app;
private Excel.Workbooks _books;
private Excel.Workbook _book;
protected Excel.Sheets _sheets;
protected Excel.Worksheet _sheet;
然後在下面的方法打開工作簿確定你有一種方法可以關閉工作簿
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;
}
}
現在,您可以選擇工作表要刪除某行:
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);