Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用EPPLUS设置列数据格式# 问题_C#_Excel_Vba_Epplus - Fatal编程技术网

C# 在C中使用EPPLUS设置列数据格式# 问题

C# 在C中使用EPPLUS设置列数据格式# 问题,c#,excel,vba,epplus,C#,Excel,Vba,Epplus,当我使用EPPLUS库导出Microsoft Excel电子表格时,我需要设置列的数据格式和单元格格式,以便Microsoft Excel电子表格中的结果日期可以被处理日期和时间的Microsoft Excel公式识别 尝试了什么 我可以使用以下工具轻松设置单元格格式: currentWorkSheet.Cells["L" + currentRowNumber.ToString()].Style.Numberformat.Format = "m/d/yyyy"; currentWorkSheet

当我使用
EPPLUS
库导出
Microsoft Excel电子表格
时,我需要设置列的数据格式和单元格格式,以便Microsoft Excel电子表格中的结果日期可以被处理日期和时间的
Microsoft Excel公式
识别

尝试了什么 我可以使用以下工具轻松设置单元格格式:

currentWorkSheet.Cells["L" + currentRowNumber.ToString()].Style.Numberformat.Format = "m/d/yyyy";
currentWorkSheet.Cells["L" + currentRowNumber.ToString()].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Right;
问题是,即使使用此数字格式化和样式化,单元格中的日期仍然无法识别为日期,它只是格式化为日期

经过研究,我发现我需要将列设置为具有“日期”数据,如下图所示:

我尝试设置列的数据类型,如图所示,但这不起作用:

currentWorkSheet.Column(10).Style.Numberformat.Format = "Date";

如何将列的数据类型设置为日期?

我尝试过,发现如果输入的日期格式与系统中设置的格式完全一致,Excel将其作为日期值类型,否则将其作为用户定义。我的系统日期格式为“dd.MM.yyyy”,因此Excel文件单元格“A3”中的代码具有日期格式,单元格“A2”具有用户定义的日期格式。 你可以看看这个

我的测试用例是:

using (ExcelPackage testFile = new ExcelPackage(new System.IO.FileInfo(@"c:\Data\test.xlsx")))
            {
                ExcelWorksheet testSht = testFile.Workbook.Worksheets[1];

                testSht.Cells[1, 1].Value = new DateTime(2017, 1, 1);
                testSht.Cells[2, 1].Style.Numberformat.Format = "dd-mm-yyyy";
                testSht.Cells[2, 1].Formula = "=Date(" + DateTime.Now.Year + "," + DateTime.Now.Month + "," + DateTime.Now.Day + ")";
                testSht.Cells[3, 1].Value = new DateTime(2017, 1, 1);
                testSht.Cells[3, 1].Style.Numberformat.Format = "dd.MM.yyyy";
                testFile.Save();
            }

Excel中显示的单元格数据类型是什么,代码是什么?例如,常规、自定义等@kuujinbo列的数据类型显示为常规,但单元格的格式正确显示为“日期”格式。请验证单元格
是否为
日期时间
。如果您使用的是不同的区域性,我已经看到将
Style.Numberformat.Format
设置为
System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern
将正确键入单元格。