Datagridview C# Столбец с форматом ошибки даты при экспорте в Excel - PullRequest
0 голосов
/ 08 апреля 2020

C#. Net Привет, у меня проблема, когда я пытаюсь экспортировать таблицу данных в файл Excel, столбец даты, который у меня есть, это:

enter image description here

Но когда я экспортирую в Excel, формат изменяется или является строкой, idk.

enter image description here

Я устанавливаю формат :

            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, или некоторые также.

1 Ответ

0 голосов
/ 08 апреля 2020

Попробуйте вот так

hoja_trabajo.Columns[4].NumberFormat = "dd/mm/aaaa";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...