【发布时间】:2019-12-01 15:48:56
【问题描述】:
我正在处理窗口表单应用程序。在我的表单中,我有 GridView,其中有一列类型为日期。日期列的日期格式为 dd-MM-YYYY。我正在将此数据导出到 Excel 中。但问题是日期格式在 Excel 中会发生变化。
这是我将数据导出到 Excel 时的代码
private void btnSaveDetails_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.ActiveSheet;
for (int i = 1; i < dataGridViewDetails.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = dataGridViewDetails.Columns[i - 1].HeaderText;
}
for (int i = 0; i < dataGridViewDetails.Rows.Count; i++)
{
for (int j = 0; j < dataGridViewDetails.Columns.Count; j++)
{
if (j == 3)
{
worksheet.Cells[i + 2, j + 1] = dataGridViewDetails.Rows[i].Cells[j].Value.ToString().Split (' ')[0];
}
else
{
worksheet.Cells[i + 2, j + 1] = dataGridViewDetails.Rows[i].Cells[j].Value.ToString();
}
}
}
}
正如您在代码中看到的,我正在以字符串格式导出每个数据,因此 Excel 单元格类型应该没有问题。但数据格式仍然可以转换。我在做什么错?
【问题讨论】:
-
因为 Excel 设置以 wich 格式显示它应该显示这个。
-
只要我将每个数据都转换成字符串类型。字符串类型也有关系吗? @克里斯托弗
-
网格的格式仅用于显示日期。当您调用
ToString时,它只会使用默认格式。这是因为格式是网格列的一部分,而DateTime对象不包含格式。
标签: c# excel c#-4.0 datagridview