C# 导出Excel时如何将空数据置空

C# 导出Excel时如何将空数据置空,c#,C#,我在datagridview中有一个列日期,我希望它在Excel中显示为12小时,因为它是24小时(示例:16/06/19 7:00 PM)。这个问题很好,我解决了,但真正的问题是,如果我的数据为空,它会显示如下(16/06/19 12:00 AM)。它总是有时间值12:00 AM,我只想显示日期,就像这样(16/06/19)。我需要一个条件,但我不知道怎么做 这是我导出到excel的代码: Microsoft.Office.Interop.Excel._Application app = ne

我在datagridview中有一个列日期,我希望它在Excel中显示为12小时,因为它是24小时(示例:16/06/19 7:00 PM)。这个问题很好,我解决了,但真正的问题是,如果我的数据为空,它会显示如下(16/06/19 12:00 AM)。它总是有时间值12:00 AM,我只想显示日期,就像这样(16/06/19)。我需要一个条件,但我不知道怎么做

这是我导出到excel的代码:

Microsoft.Office.Interop.Excel._Application app = new 
Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = 
app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";

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

for (int i = 0; i < dataGridViewIn.Rows.Count - 1; i++)
{
    (worksheet.Rows[i + 2 + ":" + i + 2, System.Reflection.Missing.Value] as Microsoft.Office.Interop.Excel.Range).NumberFormat = "@";
    for (int j = 0; j < dataGridViewIn.Columns.Count; j++)
    {
        worksheet.Cells[i + 2, j + 1] = dataGridViewIn.Rows[i].Cells[j].Value.ToString();
        worksheet.Cells[i + 2, 3].NumberFormat = " m/d/yy h:mm AM/PM";
    }
}
      
var saveFileDialoge = new SaveFileDialog();
saveFileDialoge.FileName = "TimeIn";
saveFileDialoge.DefaultExt = ".xlsx";
if (saveFileDialoge.ShowDialog() == DialogResult.OK)
{
    workbook.SaveAs(saveFileDialoge.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    app.Visible = true;
}
Microsoft.Office.Interop.Excel.\u应用程序app=new
Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.\u工作簿=
app.workbook.Add(Type.Missing);
Microsoft.Office.Interop.Excel.\u工作表=null;
工作表=工作簿。工作表[“Sheet1”];
工作表=工作簿.ActiveSheet;
工作表.Name=“从gridview导出”;
对于(int i=1;i
你想要12小时的时钟使用小的
hh
,你想要24小时的时钟使用大写的
hh

if (dateTime == null)
{
    DateTime date=Covert.ToDateTime( lastdate.ToString("dd/MM/yyyy hh:mm:ss.fff",CultureInfo.InvariantCulture));
}
在格式字符串中使用
tt
生成AM/PM指示符。

Foreach(此.datagridview1.rows中的datagridview rw){
Foreach (datagridview rw in this.datagridview1.rows){
    For (int i=1 ; i<rw.cells.count ; i++){
        if (rw.cells[i]. value == null){
            rw.cells[i]. value = "*";
        }
    }
}

对于(int i=1;i请不要只发布代码作为答案,还要解释代码的作用以及它是如何解决问题的。带有解释的答案通常更有帮助,质量更好,并且更有可能吸引选票。