【问题标题】:export datagridview to excel将数据网格视图导出到 excel
【发布时间】:2012-11-18 18:53:45
【问题描述】:

我有一个datagridview,我想将它导出到excel。它工作得很好,但它在excel中有问题。我有一些名为7/87/9 ....的列在sql中显示为[7/8][7/9] ....但是当我将其导出为ex​​cel时,这些列名称将显示为月份名称: 8-jul 9-jul 但我不希望他们那样表现出来。

我想在 sql 中显示完全一样的列名。

我该怎么办?

任何帮助将不胜感激

【问题讨论】:

  • 您使用的是 Microsoft.Office.Interop.Excel 吗?

标签: c# sql-server excel datagridview


【解决方案1】:

如果您使用的是 Microsoft.Office.Interop.Excel,您可以将Cellnumberformat 属性设置为@(用于文本),它将保持适当的值,试试这个:

oSheet.Cells[rowCount, columnCount].numberformat = "@";
oSheet.Cells[rowCount, columnCount] = "7/9";

EDIT根据评论,你应该这样使用它:

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
{ 
       for (int j = 0; j < dataGridView1.Columns.Count; j++) 
       {
             if(j+1 == 5 && i!=1) //value of the cell where you put values like 7/8 and it's not the column name cell
                   worksheet.Cells[i + 2, j + 1].numberformat = "@";
             worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); 
       } 
}

EDIT2因为它是一个列名,你可以这样使用:

for (int j = 0; j < dataGridView1.Columns.Count; j++) 
{
    worksheet.Cells[1, j + 1].numberformat = "@"; 
    worksheet.Cells[1, j + 1].dataGridView1.Columns[i].Name
}

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
{ 
       for (int j = 0; j < dataGridView1.Columns.Count; j++) 
       {
             worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); 
       } 
}

【讨论】:

  • 在字符串的开头添加 ' 也可以(就像在 Excel 中一样)
  • @ytoledano 单击您以这种方式获得的单元格。你会注意到它的 value 在开头也有那个字符,所以当你复制时你必须小心;-)
  • 在哪里?这里: for (int i = 0; i
  • 自动完成不显示它,因为它是在运行时解决的,试试吧,检查编辑的答案。
  • 它必须工作,我在发布之前测试了代码。您是否在检查适当的 Excel 文件?
【解决方案2】:

很简单,只需在[7/8] 中使用空格,例如[ 7/8]

【讨论】:

    【解决方案3】:

    使用 MS ReportViewer 生成 Excel 报告。或者使用 Aspose 库。或者使用 Devexpress AspxGridView + AspxGridViewExporter

    【讨论】:

    • 我想我应该更改数据库中的某些内容。我不认为它是否会用 MS ReportViewer 或您提到的其他人解决这个问题
    • 如何导出到excel?您可以使用导出工具设置单元格格式吗?
    【解决方案4】:

    请看这个项目:https://exportdata.codeplex.com/,它可以通过datagridview将超过4000行的大数据表导​​出到excel,还可以设置excel数据属性,如格式、样式等。在里面可以设置excel数据格式为你需要的格式,你可以试试看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多