将datagridview导出为ex​​cel

时间:2012-11-18 18:53:46

标签: c# sql-server excel datagridview

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

我希望与sql中的列名完全相同。

我该怎么办?

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:1)

如果您使用的是Microsoft.Office.Interop.Excel,则可以将numberformat的{​​{1}}属性设置为Cell(用于文本),并保留适当的值试试这个:

@

编辑根据评论,您应该像这样使用它:

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

EDIT2 由于它是一个列名,您可以使用它:

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(); 
       } 
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

只需在[7/8] [ 7/8]

中{{1}}使用空格即可

答案 3 :(得分:0)

请参阅此项目:https://exportdata.codeplex.com/,它可以通过datagridview导出超过4,000行的大型数据表,并且还允许您设置excel数据属性,例如格式,样式等。在其中,您可以将excel数据格式设置为您需要的格式。您可以尝试一下。