從C#Windows窗體讀取Excel文檔..有25個工作表在Excel工作簿..我可以讀取第一個工作表成功..但是當我改變它到工作表2 ..它會不工作..我不是使用OLEDB ..我想在一個文件中讀取多個Excel文件而不使用OLEDB在C#
我想在每一個表來讀取100行..以下是我的代碼...
` dt.Columns.Add("Amount", typeof(double));
dt.Columns.Add("ChequeNo", typeof(int));
dt.Columns.Add("month", typeof(int));
int AmountRow = 100;
int ChequeNoRow = 101;
int Column = 3;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Open(path, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets[2];\\This place is the changing worksheets
range = xlWorkSheet.UsedRange;
double chequeAmount;
double chequeNo;
for (int i = Column; i < 15; i++)
{
chequeAmount = (double)(range.Cells[AmountRow, i] as Excel.Range).Value2;
chequeNo = (double)(range.Cells[ChequeNoRow, i] as Excel.Range).Value2;
if (chequeNo != 0.0)
{
dt.Rows.Add(Convert.ToDouble(chequeAmount), Convert.ToInt32(chequeNo), i);
}
}
dataGridView1.DataSource = dt;
xlWorkBook.Close(true, null, null);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);`
releaseObject方法不在這裏..那些工作完美...
`xlWorkSheet = (Excel.Worksheet)xlWorkBook.Sheets[1];`
這是我改變我的工作表。以下行給出了一個例外。[零點異常]
chequeAmount = (double)(range.Cells[AmountRow, i] as Excel.Range).Value2;
希望你就會知道答案..
改爲使用[Linq-To-Excel](http://code.google.com/p/linqtoexcel/)。這絕對是真棒。 – Enigmativity
有一些異常兄弟...我們建議不要使用任何LinQ ..多數民衆贊成在問題..謝謝你的評論.. – tharindlaksh
這似乎是一個奇怪的要求。爲什麼你不能使用LINQ? – Enigmativity