[英]Exporting Gridview to Excel - External table is not in the expected format
[英]Exporting Gridview table to Excel
我使用以下代碼將gridview表導出到Microsoft Excel:
private void button5_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = Excel.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)Excel.ActiveSheet;
Excel.Visible= true;
ws.Cells[1, 1] = "VehiclePlateNumber";
ws.Cells[1, 2] = "VehicleDescription";
ws.Cells[1, 3] = "Distance";
for (int j = 2; j <= datagridview1.Rows.Count; j++)
{
for (int i = 2; i <= 3; i++)
{
ws.Cells[j, i] = datagridview1.Rows[j - 2].Cells[i - 1].Value;
}
}
它可以正常工作,但是第一列僅顯示沒有數據的標題文本,我不知道這是什么問題,我試圖對代碼進行一些更改,但我無法解決問題,請幫忙嗎?
他們設置for循環的方式導致僅在兩個列中循環( i=2 ;i<=3
),並且您也錯過了最后一行。 同樣在您的代碼中,您缺少右括號。
嘗試:
for (int j = 0; j < datagridview1.Rows.Count; j++)
{
for (int i = 0; i < 3; i++)
{
ws.Cells[j, i+1] = datagridview1.Rows[j].Cells[i].Value;
}
}
我認為遠地點幾乎是正確的。
ws.Cells[j +1 , i+1] = datagridview1.Rows[j].Cells[i].Value;
由於某些原因,excel不是基於零的。 唯一的區別是j之后的+1。
使用此代碼后問題得以解決:
for (int j = 2; j <= datagridview1.Rows.Count; j++)
{
for (int i = 1; i <= 3; i++)
{
ws.Cells[j, i] = datagridview1.Rows[j - 2].Cells[i - 1].Value;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.