如何更改EPPlus中特定列的格式?

我已经使用EPPlus从我的网站/数据库下载我的数据表到Excel工作表,第一张图片是我得到的结果。 第二张照片是我想要的。

问题:

  • 如何将我的时间戳的格式更改为“时间”?

显然标题仍然是一个string格式。

  • 如何让列的宽度匹配里面最长的单词?

因此,80%的邮件不会隐藏,您必须拖出列来阅读整个邮件。

编辑:完全忘了添加我的代码…

public ActionResult ExportData() { DataTable dataTable = GetData(); using (ExcelPackage package = new ExcelPackage()) { var ws = package.Workbook.Worksheets.Add("My Sheet"); //true generates headers ws.Cells["1:1"].Style.Font.Bold = true; ws.Cells["A1"].LoadFromDataTable(dataTable, true); ws.Cells[ws.Dimension.Address].AutoFitColumns(); var stream = new MemoryStream(); package.SaveAs(stream); string fileName = "Log.xlsx"; string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; stream.Position = 0; return File(stream, contentType, fileName); } } public DataTable GetData() { DataTable dt = new DataTable(); if (ModelState.IsValid) { using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MySqlConnection"].ConnectionString)) { using (SqlCommand comm = conn.CreateCommand()) { comm.Parameters.AddWithValue("@val1", Session["myID"]); comm.Parameters.AddWithValue("@val2", "%" + Session["mySearchString"] + "%"); comm.CommandText = "SELECT * FROM dbo.Log WHERE CustomerId = @val1 AND Message LIKE @val2"; try { conn.Open(); dt.Load(comm.ExecuteReader()); } catch (SqlException e) { throw new Exception(e.ToString()); } } } } return dt; } 

在这里输入图像说明

在这里输入图像说明

只需要设置Numberformat.Formatstring。 喜欢这个:

 ws.Column(2).Style.Numberformat.Format = "hh:mm:ss"; 

如果你想自定义实际只是有大量的在线资源http://www.ozgrid.com/Excel/excel-custom-number-formats.htm 。 或者你可以在Excel中打开它,将格式设置为Custom并试验string。