C# 未在open XML Excel中正确设置日期列

C# 未在open XML Excel中正确设置日期列,c#,C#,我试图复制excel工作表中的数据,但它没有正确显示它的显示方式类似于####################但我希望2016年9月17日是这样。请建议我编写什么代码以正确的格式导出excel 代码: 日期来自此代码: Label lblpkgdate = (Label)gvvessel.Rows[j].FindControl("lblpackagedate"); string myVal1 = lblpkgdate.Text; ws.Cell("F" + index5.ToString("d

我试图复制excel工作表中的数据,但它没有正确显示它的显示方式类似于####################但我希望2016年9月17日是这样。请建议我编写什么代码以正确的格式导出excel

代码:

日期来自此代码:

Label lblpkgdate = (Label)gvvessel.Rows[j].FindControl("lblpackagedate");
string myVal1 = lblpkgdate.Text; 
ws.Cell("F" + index5.ToString("dd/MM/yyyy")).Value = myVal1; 
index5++;

您可以使用NumberFormat

  Label lblpkgdate = (Label)gvvessel.Rows[j].FindControl("lblpackagedate"); 
     string myVal1 = lblpkgdate.Text;
     ws.Cell("F" + index5.ToString()).Style.NumberFormat.Format = "DD-MM-YYYY";
     ws.Cell("F" + index5.ToString()).Value = myVal1;
     index5++;

最终,您似乎试图从标签中获取日期,然后将该值放入F列某处的单元格中。我猜这是在for循环中的,正如递增index5一样。因此,类似这样的方法应该有效:

//Make column F a date column. Alter to a specific range if the whole column shouldn't be of date type.
Range rg = ws.Range("F:F");
rg.EntireColumn.NumberFormat = "DD/MM/YYYY";

var lblpkgdate = (Label).gvvessel.Rows[j].FindControl("lblpackagedate");
//Convert lblpkgdate text to DateTime object assuming format of dd/MM/yyyy to ensure it is actually a date.
DateTime pkgDate = DateTime.ParseExact(lblpkgdate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

for(int i = 1, i < YourMaxRowValue, i++)
{
    ws.Cell("F" + i).Value = pkgDate;
}
//将F列设为日期列。如果整列不应为日期类型,请更改为特定范围。
范围rg=ws.范围(“F:F”);
rg.entireclumn.NumberFormat=“DD/MM/YYYY”;
变量lblpkgdate=(Label).gvVesser.Rows[j].FindControl(“lblpackagedate”);
//将lblpkgdate文本转换为DateTime对象(假定格式为dd/MM/yyyy),以确保它实际上是一个日期。
DateTime pkgDate=DateTime.ParseExact(lblpkgdate.Text,“dd/MM/yyyy”,CultureInfo.InvariantCulture);
对于(int i=1,i

注意-我已将index5更改为“I”,因为如果您正在循环,这会减少误导。我还将myVal1改为pkgDate,因为我认为这更有意义。

什么是属性类型?datetime?是的,我想要像2016年9月17日这样的日期,但它是在Excel中显示的,您可以检查ToString(dd-MM-yyy);与myProperty.ToString一样(dd-MM-yyyy);其中excel单元格标签lblpkgdate的属性=(标签)gvVesser.Rows[j].FindControl(“lblpackagedate”);字符串myVal1=lblpkgdate.Text;ws.Cell(“F”+index5.ToString()).Value=myVal1;1, 01); index5++;日期来自此行如何转换它将在数字格式(如CloseXML)上出现编译时错误不包含数字格式的定义是
ws
type?var wb=new xl工作簿();var ws=wb.工作表。添加(“公司和船舶详细信息”)@SantoshKumarBind你查过了吗?
//Make column F a date column. Alter to a specific range if the whole column shouldn't be of date type.
Range rg = ws.Range("F:F");
rg.EntireColumn.NumberFormat = "DD/MM/YYYY";

var lblpkgdate = (Label).gvvessel.Rows[j].FindControl("lblpackagedate");
//Convert lblpkgdate text to DateTime object assuming format of dd/MM/yyyy to ensure it is actually a date.
DateTime pkgDate = DateTime.ParseExact(lblpkgdate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);

for(int i = 1, i < YourMaxRowValue, i++)
{
    ws.Cell("F" + i).Value = pkgDate;
}