Как Установить Тип Данных Ячейки
Я пытаюсь установить тип данных ячейки, но, похоже, это невозможно сделать с 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"
"@"