將數組寫入Excel范圍我目前正在嘗試使用以下代碼將數據從對象數組寫入Excel中的某個范圍objData只是一個字符串數組:private object m = System.Type.Missing;object[] objData = getDataIWantToWrite();Range rn_Temp;rn_Temp = (Range)XlApp.get_Range(RangeName, m);rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1);rn_Temp.value2 = objData;這幾乎是可行的,問題是范圍會被填充,但是每個單元格都會獲得objData.反作用力,即private object m = System.Type.Missing;object[] objData = new object[x,y]Range rn_Temp;rn_Temp = (Range)XlApp.get_Range(RangeName, m);rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1);objData = (object[])rn_Temp.value2;將返回一個數組,其中包含工作表中的所有值,因此我不確定為什么讀取和分配的工作方式不同。有人成功過嗎?我目前正在逐個單元格編寫數組單元,但它需要處理大量(>5萬)行,因此這非常耗時。
3 回答

慕姐8265434
TA貢獻1813條經驗 獲得超2個贊
object[,] arr = new object[dt.Rows.Count, dt.Columns.Count]; for (int r = 0; r < dt.Rows.Count; r++) { DataRow dr = dt.Rows[r]; for (int c = 0; c < dt.Columns.Count; c++) { arr[r, c] = dr[c]; } } Excel.Range c1 = (Excel.Range)wsh.Cells[topRow, 1]; Excel.Range c2 = (Excel.Range)wsh.Cells[topRow + dt.Rows.Count - 1, dt.Columns.Count]; Excel.Range range = wsh.get_Range(c1, c2); range.Value = arr;
- 3 回答
- 0 關注
- 337 瀏覽
添加回答
舉報
0/150
提交
取消