c#操作Excel表格插入行和列代碼,引用Microsoft.Office.Interop.Excel的方法,先是實現了插入空行,代碼如下
object MisValue=Type.Missing;
DataSet ds;
Microsoft.Office.Interop.Excel.Workbook xlsWorkbook;
Microsoft.Office.Interop.Excel.Worksheet xlsSheet = xlsWorkbook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range xlsRow=(Microsoft.Office.Interop.Excel.Range)xlsSheet.Rows[3,MisValue];
//object Range.Insert(object shift, object copyorigin);
//shift: Variant類型,可選。指定單元格的調整方式。可以為下列 XlInsertShiftDirection 常量之一:
//xlShiftToRight 或 xlShiftDown。如果省略該參數,Microsoft Excel 將根據區域形狀確定調整方式。
xlsRow.Insert(Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown,MisValue);
剛高興着這下沒問題了,第一個表是行數據,第二個表換插入列數據了,心想着這不一樣么,結果頭疼了
Microsoft.Office.Interop.Excel.Range xlsColumns=(Microsoft.Office.Interop.Excel.Range)xlsSheet.Columns[MisValue,2];
運行到這里時直接出異常,Range[object RowIndex,object ColumnIndex] 獲取行就列索引用MisValue,那么照常理來講獲取列肯定
就是行索引用MisValue唄,怎么會出錯呢,我google了半天沒找到解說。沒辦法了,准備放棄的時候突然想了一下,不會是微軟給的這個
參數名字在忽悠人吧?就試了一下:
Microsoft.Office.Interop.Excel.Range xlsColumns=(Microsoft.Office.Interop.Excel.Range)xlsSheet.Columns[2,MisValue];
xlsColumns.Insert(Microsoft.Office.Interop.Excel.xlShiftRight,MisValue);
直接就好了
竟然真是被這個參數名給忽悠了。
另外,提醒一下,Microsoft.Office.Interop.Excel.Workbook 這個東西下面的Worksheets,Worksheets.Columns等集合的索引全是
從1開始,我是看到打出來的數據位置不對才知道的。