формат даты при экспорте в Excel изменения

У меня есть этот код для экспорта в DataGridView:

 {
    Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
    app.Visible = false;
    Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(1);

    Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1];

    ws.Name = "Hedging";
    ws.Rows.HorizontalAlignment = HorizontalAlignment.Center;
    // storing header part in Excel
    for (int i = 1; i < dataGridView2.Columns.Count + 1; i++)
    {
        ws.Cells.NumberFormat = "@";
        ws.Cells[1, i] = dataGridView2.Columns[i - 1].HeaderText;
        ws.Cells[1, i].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.AliceBlue);

    }

    // storing Each row and column value to excel sheet
    for (int i = 0; i < dataGridView2.Rows.Count - 1; i++)
    {
        for (int j = 0; j < dataGridView2.Columns.Count; j++)
        {               
            ws.Cells[i + 2, j + 1].Value = dataGridView2.Rows[i].Cells[j].Value.ToString();
        }

        int percentage = (i + 1) * 100 / dataGridView2.Rows.Count;
        backgroundWorker1.ReportProgress(percentage);
    }

    ws.Cells.EntireColumn.AutoFit();
    wb.SaveAs(textBox2.Text, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}

У меня вопрос при открытии DataGridView в формате dd/MM/yy , но при Экспорт в Excel преобразуется в dd/MM/yy HH:mm:ss .

Я просто хочу увидеть dd/MM/yyyy .

Как установить формат dd/MM/yyyy при экспорте информации в файл Excel?

1
задан 10.05.2017, 22:02
1 ответ

У меня был сходный случай, поработав с датами, у него был DataGridView, который наполняет с консультацией BD, и он содержал поля с датой, как в других форумах, которые я исследовал tambiГ©n, мне менялся день из-за месяца например, если он имел в DataGridView 03.01.2019 после того, как экспортировал excel, он проходил как 01.03.2019. В моем случае всегда наполнял линию номер 1 excel с header DataGridView

for (int i = 1; i < dataGridView1.Columns.Count + 1; i++)
            {
                worksheet.Cells[1, i] = dataGridView1.Columns[i - 1].HeaderText;
            }

DespuГ©s реализации этого конфигурировал формат колонн с полями даты используя NumberFormat, для типа формата, что ты захотел https://support.office.com/es-es/article/c%C3%B3digos-de-formato-de-n%C3%BAmero-5026bbd6-04bc-? ui=es-ES& rs=es-HN& ad=419 я это обратил в текст для того, чтобы интегрировалась в такой excel которая эта в DataGridView

columns = new string[3] { "A", "G", "H" };
worksheet = cambiarFormatoColumn(worksheet, "@", columns);

Yo, использовал метод, из-за которого он реализовывал несколько докладов, и у всех были поля с датой в различных колоннах

public _Worksheet cambiarFormatoColumn(_Worksheet worksheet, string format, string[] colums)
    {
        for (int i = 0; i < colums.GetLength(0); i++)
            worksheet.Columns[colums[i]].NumberFormat = format;

        return worksheet;
    }

И, итак, уже в конце концов наполнять остальные ячейки

for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString();
                    }
                }
1
ответ дан 24.11.2019, 09:20