c# - 导出到excel时Datagridview C#列日期错误格式
问题描述
当我尝试将 a 导出datagridview
到 Excel 文件时遇到问题,我拥有的日期列是这样的:
但是当我导出到 Excel 时,格式发生了变化,或者是一个字符串。
我设置了格式:
dataGridView1.Columns[3].ValueType = typeof(DateTime);
dataGridView1.Columns[3].DefaultCellStyle.Format = "dd/mm/yyyy";
这是我的导出代码:
public void ExportarDataGridViewExcel(DataGridView grd)
{
try
{
SaveFileDialog fichero = new SaveFileDialog();
fichero.Filter = "Excel (*.xls)|*.xls";
fichero.FileName = "ReporteExportado";
if (fichero.ShowDialog() == DialogResult.OK)
{
Microsoft.Office.Interop.Excel.Application aplicacion;
Microsoft.Office.Interop.Excel.Workbook libros_trabajo;
Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo;
aplicacion = new Microsoft.Office.Interop.Excel.Application();
libros_trabajo = aplicacion.Workbooks.Add();
hoja_trabajo =
(Microsoft.Office.Interop.Excel.Worksheet)libros_trabajo.Worksheets.get_Item(1);
//Recorremos el DataGridView rellenando la hoja de trabajo
for (int i = 0; i < grd.Rows.Count - 1; i++)
{
for (int j = 0; j < grd.Columns.Count; j++)
{
if ((grd.Rows[i].Cells[j].Value == null) == false)
{
hoja_trabajo.Cells[i + 1, j + 1] = grd.Rows[i].Cells[j].Value.ToString();
label3.Text = "Registros: " + i + " de "+dataGridView1.Rows.Count;
prgBar.Minimum = 0;
prgBar.Maximum = 100;
int valor;
valor = (100 * i) / dataGridView1.Rows.Count;
prgBar.Value = valor;
}
}
}
MessageBox.Show("Tarea realizada");
label3.Text = "";
prgBar.Value = 0;
libros_trabajo.SaveAs(fichero.FileName,
Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
libros_trabajo.Close(true);
aplicacion.Quit();
}
}
catch (Exception ex)
{
MessageBox.Show("Error al exportar la informacion debido a: " + ex.ToString());
}
}
我看到一些问题,我发现这是一个Excel问题,或者一些也是。
解决方案
试试这个方法
hoja_trabajo.Columns[4].NumberFormat = "dd/mm/aaaa";
推荐阅读
- c++11 - 为什么我不能在 range-for 中使用 decltype 和多维数组?
- python-3.x - AWS Redshift:如何描述在 redshift 中创建的库?
- docker - Docker Compose 网络:可访问主机的桥接驱动程序
- laravel - Laravel 中的验证。如何将规则和消息传递给控制器?
- python - 返回使用理解列出列对的数据框
- c# - 子表单找不到文本文件
- docker - 在 CMD [Dockerfile] 中展开 ARG 值
- ios - 图表:如何在 LineChartView 中设置左右轴标签的颜色?
- javascript - 将引导折叠添加到具有行跨度的表格单元格
- java - 递归计算数组中的元素 - 大数组