Мы собираем все данные таблицы внутри $("#dvtablerptTDetails")[0].innerHTML
, содержащие все данные, которые будут сохранены в сеансе, а затем преобразованы в строку и отправлены в Response.Write()
, что позже создаст файл Excel, содержащий данные типа файла xlsx
Здесь требуется переопределить формат ячейки по умолчанию при записи данных, особенно для формата даты и времени отдельной ячейки.
По умолчанию при сохранении и просмотре Формат ячейки будет в dd/mm/yyyy hh:mm
Но ожидаемый формат ячейки должен быть в dd-MMM-yyyy HH:mm:ss
Поэтому попытался изменить префикс и суффикс данных с помощью точки (.
) или со скоростью (@
). Но он работал печать в соответствии с нашим требованием. Но не удается избежать специальных символов. Поскольку он пишет точно так, как есть.
Ниже приведены частичные фрагменты
DateTimeUtility objDTU = new DateTimeUtility();
RegisteredDate = objDTU.GetActualDateTime((DateTime)(dsTestcener.Rows[i]["TestApprovedDate"])).ToString("dd-MMM-yyyy HH:mm:ss");
public DateTime GetActualDateTime(DateTime utcDateTime)
{
DateTime actualDateTime;
if (HttpContext.Current.Session["UserTimeZone"] != null)
{
actualDateTime = utcDateTime.AddHours(Double.Parse(HttpContext.Current.Session["UserTimeZone"].ToString(), CultureInfo.InvariantCulture));
}
else
{
actualDateTime = utcDateTime;
}
return actualDateTime;
}
Попытка изменить вышеуказанные данные, присвоенные RegisteredDate
объекту
objDTU.GetActualDateTime((DateTime)(dsTestcener.Rows[i]["TestApprovedDate"]))
.ToString("dd-MMM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
- Фактические данные (html): 28 февраля 2020 г. 15: 14: 38
- Фактические данные (xsl): 28/02/2020 15: 14
- Ожидаемые данные (xsl): 28-февраля-2020 15: 14: 38
objDTU.GetActualDateTime((DateTime)(dsTestcener.Rows[i]["TestApprovedDate"]))
.ToString("dd-MMM-yyyy HH:mm:ss.fff", CultureInfo.InvariantCulture);
- Фактические данные (html): 28- Фев-2020 15: 14: 38.313
- Фактические данные (xsl): 14: 38.
- Ожидаемые данные (xsl): 28-февраля-2020 15: 14: 38.313
objDTU.GetActualDateTime((DateTime)(dsTestcener.Rows[i]["TestApprovedDate"]))
.ToString("dd-MMM-yyyy HH:mm:ss");
- Фактические данные (html): 28 февраля 2020 года 15: 14: 38
- Фактические данные (xsl): 28/02 / 2020 15: 14: 38
- Ожидаемые данные (xsl): 28 февраля 2020 г. 15: 14: 38
Приведенные ниже фрагменты кода показывают, как 1074 * данные собираются и передаются в Response.Write()
function ExportAnalysis() {
try {
var batchDetails = $("#displayDetails").html();
var message = JSON.stringify({ BatchDetails: batchDetails });
CallAjaxJSON(message, '<%=Request.ApplicationPath%>' + "/MES/TestCentre.aspx/PersistBatchDetails", OnExportBatchSuccess, OnFailure);
var url = '<%=Context.Request.ApplicationPath%>' + '/MES/ExportToExcel.aspx?name=Analysis Response';
window.open(url);
} catch (e) {
}
return false;
}
[System.Web.Services.WebMethod()]
public static string PersistBatchDetails(object BatchDetails)
{
try
{
HttpContext.Current.Session["DashboardBatchInfo"] = BatchDetails;
}
catch (Exception ex){}
return "S001";
}
protected void Page_Load(object sender, EventArgs e)
{
string fileName = "Excel";
if (!String.IsNullOrEmpty(Request.QueryString["name"]))
fileName = Request.QueryString["name"];
Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.ms-excel";
string BatchDetails = Convert.ToString(Session["DashboardBatchInfo"]);
Response.Write(BatchDetails);
Response.End();
Session["DashboardBatchInfo"] = null;
}
Как нам нужно достичь при записи ожидаемых данных в соответствующем формате?