Как Установить Тип Данных Ячейки

Я пытаюсь установить тип данных ячейки, но, похоже, это невозможно сделать с EPPlus.

Если я помещаю число как значение в ячейку, Я получаю общий тип данных в экспортированном файле Excel.

Если задать NumberFormat ячеек, например:

workSheet.Cells[range].Style.Numberformat.Format = "mm/dd/yyyy hh:mm:ss";

тогда я все равно не получу дату или время. Экспортированный файл Excel покажет ячейки как пользовательский тип данных.

Я могу получить только общие или пользовательские типы данных. Я хочу установить тип данных ячеек в Time, но я не могу. Проблема в том, что если тип данных не задан, то по какой-то причине сводная таблица на другом листе сортирует числа как строки :(

Итак, есть ли способ, чтобы установить тип данных ячейки, пожалуйста?

3 ответов


форматирование чисел становится немного странным с 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";

но я бы очень хотел найти таблицу форматов в EPPlus и типах ячеек в Excel, чтобы получить другие типы Excel, такие как валюта, процент и т. д...


вот 49 форматов, перечисленных в EPPlus/EPPlus/Style / ExcelNumberFormat.цезий (находится здесь):

"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"
"@"