我正在使用從Excel文件讀取數據。我能夠連接到Excel並從中讀取數據。如何將對象[,]轉換爲C#中的數據表
我getitng返回類型爲對象[,]。我不確定它具體說明了什麼。我知道object []是對象數組。
不確定object[,]
。我嘗試了谷歌搜索,但沒有找到任何有用的解釋。
此外,我想將其轉換爲數據表,並將其綁定到winforms中的數據網格視圖。
我們是否需要在綁定之前將上面的數組轉換爲數據表或者是否有其他方式將其綁定到網格?
請給我一些想法來擡頭。
請在以下代碼:
void ReadSheetData(string strFilePath)
{
Workbook workBook = _excelApp.Workbooks.Open(strFilePath,
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);
int numSheets = workBook.Sheets.Count;
for (int sheetNum = 1; sheetNum < numSheets + 1; sheetNum++)
{
Worksheet sheet = (Worksheet)workBook.Sheets[sheetNum];
Range excelRange = sheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
PrepareData(valueArray);
}
}
System.Data.DataTable PrepareData(object[,] valueArray)
{
System.Data.DataTable dtTemp = new System.Data.DataTable();
dtTemp=????? // How to convert object[,] to datatable
return dtTemp;
}
使用EPPLUS庫是免費的,可以讀/寫xlsx文件,比Interop快得多,比較穩定並且轉換爲數據表是簡單的命令ToDataTable()。 – 2014-09-11 07:53:51
是的..你是正確的..我們想沒有外部的依賴..這就是不使用oledb連接的原因 – 2014-09-11 07:55:25
對於我個人的經驗,經常使用閱讀EXCLE和導入數據。 你想要做什麼是明智的,通過創建一種代表你的Excel記錄的類,加載你的數據數組來解決它。 當你有一組數據時,你可以做你想做的事。如果你願意,我會像你一樣 – daniele3004 2014-09-11 08:05:15