如何使用EPPlus将excel中基于字符串的时间转换为hh:mm格式?

eya*_*alb 6 c# excel epplus

我需要我的excel输出有一个格式为HH:mm的时间列.

我的代码如下:

ws.Cells[rowNumber, 11].Style.Numberformat.Format = "hh:mm";
string start = row.R_HourStart.ToString("HH:mm:ss");
ws.Cells[rowNumber, 11].Value = start;
Run Code Online (Sandbox Code Playgroud)

但是当我在excel中打开文件时,单元格显示"10:10:00".

当我在公式栏中插入文本并单击回车时,单元格文本更改为"10:10",这是我想要的.

我也尝试过使用:

ws.Cells[rowNumber, 11].Style.Numberformat.Format = "hh:mm";
string start = row.R_HourStart.ToString("HH:mm:ss");
ws.Cells[rowNumber, 11].LoadFromText(start);
Run Code Online (Sandbox Code Playgroud)

我在单元格中显示"10:10",但公式​​栏显示今天的完整日期,时间为10:10.

另外,我尝试过:

ws.Cells[rowNumber, 12].Style.Numberformat.Format = "hh:mm";
ws.Cells[rowNumber, 12].Value = row.R_HourEnd;
Run Code Online (Sandbox Code Playgroud)

在单元格中显示"10:10",但公式​​栏显示整个日期和时间为"22/08/2014 10:10:00".

Chr*_*ris 8

你能把时间转换成TimeSpan吗?这对我有用:

var package = new ExcelPackage(new FileInfo("text.xlsx"));
var sheet = package.Workbook.Worksheets.Add("Sheet 1");

var someTime = "10:10:00";
var timeSpan = TimeSpan.Parse(someTime);
sheet.Cells[1, 1].Value = timeSpan;
sheet.Column(1).Style.Numberformat.Format = "hh:mm";

package.Save();
Run Code Online (Sandbox Code Playgroud)