我正在像这样读取时间类型的单元格:
var daysFrom1900 = Convert.ToDouble(cell.CellValue.Text);
content = DateTime.FromOADate(daysFrom1900).ToString("HH:mm");
我正在读取的单元格中的数据显示为“ 09:00 AM”,并且正在读取的内容是值为“ 09:00”的字符串,这是因为我强制使用格式。如何从Excel文件中获取显示格式并将相同格式应用于字符串?基本上,我希望内容为“ 09:00”(如果这是单元格中的显示值),并且为“ 09:00 AM”(如果它在单元格中显示AM / PM)。
它们在单元格中具有相同的值,但显示不同。我想要什么?
插入代码Cell.CellValue.Text = 0.375
答案 0 :(得分:1)
你可以尝试'tt'
content = DateTime.FromOADate(daysFrom1900).ToString("HH:mm tt"); // should return 09.00 AM
see this link。对于日期和时间格式非常有帮助
tt AM / PM(例如AM或PM)
希望此行对您有帮助。
答案 1 :(得分:-1)
string parseExcelHour(string cellInput){
double excelHour = 0;
try{
excelHour = Double.Parse(cellInput);
}catch { }
int hour = (int) (excelHour * 24);
// with the int cast you get only an integer.
int min = (int) (excelHour * 1440 % 60);
//mod (%) takes only the remainder and then the cast to int will round the number
return (hour < 10? "0":"") + hour + ":" + (min < 10? "0":"") + min + (hour > 12 ? “Pm”:”am”);
}