这是我的代码的一部分。
XLWorkbook wb = new XLWorkbook();
GridView[] gvExcel = new GridView[] { gv01PL, gv01PD, gv01T1, gv023P, gv023L, gv02SU };
string[] name = new string[] { "01-PL", "01-PD", "01-T1", "02-3P", "02-3L", "02-SU" };
for (int i = 0; i < gvExcel.Length; i++)//each gridview
{
if (gvExcel[i].Visible)
{
gvExcel[i].AllowPaging = false;
DataTable dt = new DataTable(name[i].ToString());
for (int z = 0; z < gvExcel[i].Columns.Count; z++)
{
dt.Columns.Add(gvExcel[i].Columns[z].HeaderText);
}
foreach (GridViewRow row in gvExcel[i].Rows)
{
dt.Rows.Add();
for (int c = 0; c < row.Cells.Count; c++)
{
dt.Rows[dt.Rows.Count - 1][c] = row.Cells[c].Text;
}
}
wb.Worksheets.Add(dt);
gvExcel[i].AllowPaging = true;
}
}
我在这条线上遇到麻烦:
dt.Rows[dt.Rows.Count - 1][c] = row.Cells[c].Text;
它给出了“找不到列0”的错误。我知道我在这里缺少一些简单的东西。任何帮助将不胜感激。
您可能会收到此错误,因为DataTable
没有任何列。
确保gvExcel[i].Columns.Count
此处不为0:
for (int z = 0; z < gvExcel[i].Columns.Count; z++) { dt.Columns.Add(gvExcel[i].Columns[z].HeaderText); }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句