在将 DataTable 导出到 excel 之前,将具有日期时间格式的字符串 -"yyyyMMddhhmmssfff" 转换为“DD-MM-YYYY HH:MM)
Convert the string with datetime format-"yyyyMMddhhmmssfff" to "DD-MM-YYYY HH:MM) before exporting DataTable to excel
我正在使用 ExcelPackage(EPPLUS nuget 包)将结果从数据库导出到 excel。
数据库中的日期时间字段为字符串,格式为 - yyyyMMddhhmmssfff,导出后在 excel 中不可读 - 20191211034422455。所以我需要将其转换为可读格式,例如
DD-MM-YYYY HH:MM 或任何其他可读格式。我如何实现它。我是否需要解析每一行并显式转换?对于转换,我是否必须先将其转换为日期时间然后再转换为字符串?
我当前的代码片段
//Method which reads data from database
using (SqlConnection sqlcon = new SqlConnection(ConnStrng))
{
sqlcon.Open();
string query = "Select Vehicleid,Speed,Datetime from VehiclDBk where Speed>30 and Datetime between '" + startDate + "' and '" + endDate + "'";
SqlDataAdapter sqlda = new SqlDataAdapter(query, sqlcon);
valRes = new DataTable();
sqlda.Fill(valRes);
DBView.DataSource = valRes;
sqlcon.Close();
}
// Method which exports data when user presses export button
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add(DateTime.Now.ToShortDateString());
ws.Cells["A1"].LoadFromDataTable(valRes, true);
pck.SaveAs(new FileInfo(savefile.FileName));
}
如有任何帮助,我们将不胜感激。
也有可能我可以将它转换为 DateTime 并导出为 DateTime 而不是字符串到日期时间,然后再导出到字符串
您应该将其转换为 DateTime,然后再转换为字符串。
如果您的日期时间为毫秒,请使用以下格式(Link 现场演示 here)
string format = "yyyyMMddHHmmssfff";
string dateTime = "20191211034422455";
var x = DateTime.ParseExact(dateTime, format, CultureInfo.InvariantCulture);
var result = x.ToString("dd-MM-yyyy HH:MM"); // In my opinion, You just convert to Date to use instead of then to string like this.
我正在使用 ExcelPackage(EPPLUS nuget 包)将结果从数据库导出到 excel。 数据库中的日期时间字段为字符串,格式为 - yyyyMMddhhmmssfff,导出后在 excel 中不可读 - 20191211034422455。所以我需要将其转换为可读格式,例如 DD-MM-YYYY HH:MM 或任何其他可读格式。我如何实现它。我是否需要解析每一行并显式转换?对于转换,我是否必须先将其转换为日期时间然后再转换为字符串?
我当前的代码片段
//Method which reads data from database
using (SqlConnection sqlcon = new SqlConnection(ConnStrng))
{
sqlcon.Open();
string query = "Select Vehicleid,Speed,Datetime from VehiclDBk where Speed>30 and Datetime between '" + startDate + "' and '" + endDate + "'";
SqlDataAdapter sqlda = new SqlDataAdapter(query, sqlcon);
valRes = new DataTable();
sqlda.Fill(valRes);
DBView.DataSource = valRes;
sqlcon.Close();
}
// Method which exports data when user presses export button
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add(DateTime.Now.ToShortDateString());
ws.Cells["A1"].LoadFromDataTable(valRes, true);
pck.SaveAs(new FileInfo(savefile.FileName));
}
如有任何帮助,我们将不胜感激。 也有可能我可以将它转换为 DateTime 并导出为 DateTime 而不是字符串到日期时间,然后再导出到字符串
您应该将其转换为 DateTime,然后再转换为字符串。
如果您的日期时间为毫秒,请使用以下格式(Link 现场演示 here)
string format = "yyyyMMddHHmmssfff";
string dateTime = "20191211034422455";
var x = DateTime.ParseExact(dateTime, format, CultureInfo.InvariantCulture);
var result = x.ToString("dd-MM-yyyy HH:MM"); // In my opinion, You just convert to Date to use instead of then to string like this.