在导出excel之前更改数据
我有一个包含布尔值的列表。 我想将该列表导出为excel,但对于客户来说这一定是有意义的。 当我按原样输出它时,它会按预期显示True
和False
等值,但这些值可能对客户的感觉没有任何意义。 这是我做excel导出的方式:
LiveModReports model = new LiveModReports(); List<ModerationDM.DetailedContent> liveModListDM = new List<ModerationDM.DetailedContent>(); liveModListDM = contentBLL.GetContentsForMod(modId, startDate, endDate); if (liveModListDM != null) { model.ContentExcelList = new List<ContentExcel>(); foreach (var item in liveModListDM) { model.ContentExcelList.Add(new ContentExcel() { ModerasyonNumarasi = item.ModId, Kategori = item.Category, AltKategori = item.SubCategory, IcerikAdresi = item.ContentURL, IcerikSahibiTamAdi = item.ContentUFullName, IcerikSahibiEPosta = item.ContentUserEmail, IcerikMetni = item.ContentText, Durumu = item.ResultCode, SonDegistirilmeTarihi = (DateTime)item.ModifiedTime, ModerasyonKategorisi = item.ModCategoryName, IcerikNumarasi = item.ContentSeqNum, BegeniPuani = item.LikeCount, BegenilmemePuani = item.DislikeCount, PaneldenVerilmisCevapMi = item.IsAnswer, CevaplanmisMi = item.IsAnswered, RaporlamaBasligi = item.ReportHeader }); } } CreateExcelFile.CreateExcelDocument(model.ContentExcelList, "IcerikListesi.xlsx", System.Web.HttpContext.Current.Response);
例如,IsAnswer必须显示为“Evet”,意思是土耳其语中的“Yes”,但现在显示为“True”。 如何在写入excel之前更改这些值?
使用三元运算符来更有意义的数据,例如:
PaneldenVerilmisCevapMi = (item.IsAnswer ? "Yes" : "No"), ...
说明:如果IsAnswers
计算结果为true
,则使用“是”,否则使用“否”。
请注意, PaneldenVerilmisCevapMi
必须是一个string
。
更新:
如果item.IsAnswer
是一个可为空的types,则将您的if语句更改为:
PaneldenVerilmisCevapMi = (item.IsAnswer.HasValue ? "Yes" : "No"),
在写入Excel 之前,您是准备模型的人。 因此,您可以简单地更改属性以适应您的需求。
例如
PaneldenVerilmisCevapMi = (item.IsAnswer) ? "Evet" : "No"
会为你工作,但你可以做任何事情与这些对象。 比如把它传递给一个方法,改变诸如True
to Evet
东西,或者其他任何对于最终用户来说都是如此的东西。
MakeDataReadable(model.ContentExcelList);
你可以简单地写这个:
PaneldenVerilmisCevapMi = (item.IsAnswer) ? "Evet" : "No"