Types 如何设置单元格数据类型

Types 如何设置单元格数据类型,types,cell,epplus,Types,Cell,Epplus,我正在尝试设置单元格的数据类型,但这似乎不可能用EPPlus实现 若我在单元格中放置一个数字作为值,我将在导出的Excel文件中获得常规数据类型 如果设置了单元格的NumberFormat,例如: workSheet.Cells[range].Style.Numberformat.Format = "mm/dd/yyyy hh:mm:ss"; 那我还是不知道日期和时间。导出的Excel文件将单元格显示为自定义数据类型 我只能获取常规或自定义数据类型。我想将单元格的数据类型设置为时间,但我不能。

我正在尝试设置单元格的数据类型,但这似乎不可能用EPPlus实现

若我在单元格中放置一个数字作为值,我将在导出的Excel文件中获得常规数据类型

如果设置了单元格的NumberFormat,例如:

workSheet.Cells[range].Style.Numberformat.Format = "mm/dd/yyyy hh:mm:ss";
那我还是不知道日期和时间。导出的Excel文件将单元格显示为自定义数据类型

我只能获取常规或自定义数据类型。我想将单元格的数据类型设置为时间,但我不能。问题是,如果未设置数据类型,则出于某种原因,其他工作表中的透视表将数字排序为字符串:(


那么,有什么方法可以设置单元格的数据类型吗?

excel的数字格式有点奇怪。基本上,它是一个预定义字符串列表,因此它可以逐个单元格进行匹配。要查看该列表在EPPlus中的外观,请查看源代码中的ExcelNumberFormat.cs类

但是,如果您只需要让Excel在主功能区的“数字->数字格式”下拉列表中将单元格“查看”为特定类型,则应该可以这样做:

[TestMethod]
public void Date_Format_Test()
{
    //http://stackoverflow.com/questions/29473920/how-to-set-cell-data-type

    var existingFile = new FileInfo(@"c:\temp\temp.xlsx");
    if (existingFile.Exists)
        existingFile.Delete();

    using (var pck = new ExcelPackage(existingFile))
    {
        var ws = pck.Workbook.Worksheets.Add("Content");
        var date = DateTime.Now;

        //Raw date value as number
        ws.Cells["A1"].Value = date;

        //As "Short Date"
        ws.Cells["A2"].Value = date;
        ws.Cells["A2"].Style.Numberformat.Format = "mm-dd-yy";

        //As "Time"
        ws.Cells["A3"].Value = date;
        ws.Cells["A3"].Style.Numberformat.Format = "[$-F400]h:mm:ss\\ AM/PM";

        pck.Save();
    }
}

对于在我使用的Excel中设置数字单元格类型,这个建议非常好

worksheet.Column(1).Style.Numberformat.Format = "#,##0.000";

但是我真的很想在ePlus中找到一些格式表和Excel中的单元格类型,以获得其他Excel类型,如货币、百分比等。

以下是ePlus/ePlus/Style/ExcelNumberFormat.cs中列出的49种格式 :


是的!我没有注意到case语句缺少一些值:)但是如果需要,可以使用其他格式。例如,对于日期,如果您使用DateTime.ToOADate()设置值,那么Numberformat.Format=“dd MMM yyy hh:mm”可以很好地工作。我知道这已经很旧了,但对于其他遇到这种情况的人,我们倾向于使用“$”、#0.00”等数字格式来管理货币。我们只需将货币符号连接到数字格式字符串的前面。
"General"
"0"
"0.00"
"#,##0"
"#,##0.00"
"0%"
"0.00%"
"0.00E+00"
"# ?/?"
"# ??/??"
"mm-dd-yy"
"d-mmm-yy"
"d-mmm"
"mmm-yy"
"h:mm AM/PM"
"h:mm:ss AM/PM"
"h:mm"
"h:mm:ss"
"m/d/yy h:mm"
"#,##0 ;(#,##0)"
"#,##0 ;[Red](#,##0)"
"#,##0.00;(#,##0.00)"
"#,##0.00;[Red](#,#)"
"mm:ss"
"[h]:mm:ss"
"mmss.0"
"##0.0"
"@"