0
我想在Excel中導入一個Excel表格到數據表中。我不斷收到越界異常,因爲列值正在被硬編碼。基於C#中傳入的Excel數據動態創建數據表?
對(INT C = 0; C^< 40; C++){...}
因此,而不是硬編碼此和具有一串在我的數據表中列出的空列的,是有一種方法可以在創建表之前統計傳入的所有列嗎?從而允許我圍繞傳入數據動態創建表格?
以下是我的代碼。
if (fileUpload.HasFile)
{
DataTable dt = new DataTable();
for (int c = 0; c <40; c++) { dt.Columns.Add(c.ToString(), typeof(string)); }
using (Stream fileStream = fileUpload.PostedFile.InputStream)
using (StreamReader sr = new StreamReader(fileStream))
{
string a = null;
while ((a = sr.ReadLine()) != null)
{
dt.Rows.Add(a.Split(new char[] { ',' }).ToArray());
}
}
GridView1.DataSource = dt;
GridView1.DataBind();
現在就試試吧。第一次運行時出現錯誤。 「輸入數組的長度大於此表中的列數。」 –
如果你明白了,那麼嘗試設置一個斷點並查看你的數據。你有一些行比第一行有更多的列嗎?你通常不應該有這樣的問題,除非該文件是以某種奇怪的方式創建的。 – gmiley
是的,我正在通過現在。由於某些數據是「Last,First」格式的名稱,因此逗號分隔會造成問題。 –