【问题标题】:Datagridview C# Column with Date error format when exporting to excel导出到excel时Datagridview C#列日期错误格式
【发布时间】:2020-04-08 15:22:27
【问题描述】:

当我尝试将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 问题,或者还有一些问题。

【问题讨论】:

    标签: c# .net excel datagridview


    【解决方案1】:

    试试这个方法

    hoja_trabajo.Columns[4].NumberFormat = "dd/mm/aaaa";
    

    【讨论】:

      猜你喜欢
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多