0

我正在尝试将 Windows 窗体上的 DatePicker 中的日期保存到现有的 Excel 电子表格中。

以下代码将 DatePicker 的 ShortDate 值分配给字符串:

if (checkupCheck.Checked)
            {
                newCheckupDate = checkupPicker.Value.Date.ToShortDateString();
            }
            else
            {
                newCheckupDate = null;
            }  

然后使用以下代码将该值放入数据网格中后保存:

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
            {
                for (int k = 0; k < dataGridView1.Columns.Count; k++)
                {
                    worksheet.Cells[i + 2, k + 1] = dataGridView1.Rows[i].Cells[k].Value.ToString();
                }
            }
workbook.Save();

在断点处查看 newCheckupDate 字符串的值时,它显示为我想要的"dd/mm/yyyy"

但是,当将其保存到 Excel 中时,单元格将包含"dd/mm/yyyy 00:00:00". 我不想添加时间。该单元格被格式化为日期单元格。

我有一种感觉,Excel可能是这里问题的原因,但我不知道如何解决它。

提前感谢您的帮助!

4

1 回答 1

0

无需深入研究原因,您可以简单地格式化循环中的单元格:

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
    for (int k = 0; k < dataGridView1.Columns.Count; k++)
    {
        worksheet.Cells[i + 2, k + 1] = dataGridView1.Rows[i].Cells[k].Value.ToString();
        worksheet.Cells[i + 2, k + 1].NumberFormat = "dd/mm/yyyy"
    }
}

workbook.Save();
于 2013-03-09T16:14:06.573 回答