【发布时间】:2019-04-12 16:39:48
【问题描述】:
我正在尝试使用以下代码将数据从 c# 导出到 excel:
enter worksheet = workbook.ActiveSheet;
worksheet.Name = "ExportedFromDatGrid";
//Loop through each row and read value from each column.
for (int i = 0; i < dataGridView1.Rows.Count + 1; i++)
{
worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
}
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count - 1; j++)
{
// Excel index starts from 1,1. As first Row would have the Column headers,
// adding a condition check.
worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
}
}
我收到以下错误:
索引超出范围。必须为非负数且小于集合的大小。参数名称:索引。
更新我通过更改这个 for 语句解决了这个问题:
for ( int i = -1; i < DataGridView1.Columns.Count; i++)
【问题讨论】:
-
用
dataGridView1.Rows.Count代替dataGridView1.Rows.Count + 1怎么样 -
嗯,是的,您对
i的限制非常可疑。如果您更仔细地格式化代码,显示错误所在,并告诉我们您在调试时观察到的情况,将会有所帮助。
标签: c# excel export-to-excel