我有一个datagridview,我想将它导出到excel。它工作得很好,但在excel方面存在问题。我有一些名为7/8
7/9
....的列在sql中显示为[7/8]
[7/9]
....但是当我将其导出为excel时这些列名称将显示月份名称,如:8-jul
9-jul
,但我不希望它们显示如此。
我希望与sql中的列名完全相同。
我该怎么办?
任何帮助将不胜感激
答案 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]
答案 3 :(得分:0)
请参阅此项目:https://exportdata.codeplex.com/,它可以通过datagridview导出超过4,000行的大型数据表,并且还允许您设置excel数据属性,例如格式,样式等。在其中,您可以将excel数据格式设置为您需要的格式。您可以尝试一下。