我有一个datagridview,我想将它导出到excel。它工作得很好,但它在excel中有问题。我有一些列7/8
7/9
在 sql 中命名为 .... 它显示为[7/8]
[7/9]
.... 但是当我将其导出到 excel 时,这些列的名称将显示为月份名称,如:8-jul
9-jul
但我不希望它们显示为.
我想在 sql 中显示完全一样的列名。
我该怎么办?
任何帮助将不胜感激
我有一个datagridview,我想将它导出到excel。它工作得很好,但它在excel中有问题。我有一些列7/8
7/9
在 sql 中命名为 .... 它显示为[7/8]
[7/9]
.... 但是当我将其导出到 excel 时,这些列的名称将显示为月份名称,如:8-jul
9-jul
但我不希望它们显示为.
我想在 sql 中显示完全一样的列名。
我该怎么办?
任何帮助将不胜感激
如果您使用的是 Microsoft.Office.Interop.Excel,则可以将tonumberformat
的属性设置Cell
为@
(用于文本),它将保持适当的值,试试这个:
oSheet.Cells[rowCount, columnCount].numberformat = "@";
oSheet.Cells[rowCount, columnCount] = "7/9";
编辑根据评论,你应该像这样使用它:
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();
}
}
使用 MS ReportViewer 生成 Excel 报告。或者使用 Aspose 库。或使用 Devexpress AspxGridView + AspxGridViewExporter
[7/8]
这很简单,只需在like中使用一个空格[ 7/8]
请看这个项目:https ://exportdata.codeplex.com/ ,它可以通过datagridview将超过4000行的大数据表导出到excel,还可以设置excel数据属性,如格式、样式等。在里面,你可以设置excel数据格式为你需要的,你可以试试看。