我有一个包含布尔值的列表。我想将该列表导出为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”,土耳其语中的“是”,但现在显示为“True”。如何在将值写入excel之前更改值?
答案 0 :(得分:2)
您是准备模型之前将其写入Excel的人。因此,您只需更改属性即可满足您的需求。
例如
PaneldenVerilmisCevapMi = (item.IsAnswer) ? "Evet" : "No"
会对你有用,但你可以对这些对象做任何事情。例如 - 将其传递给将True
更改为Evet
之类的方法或其他任何看起来更适合最终用户的方法。
MakeDataReadable(model.ContentExcelList);
答案 1 :(得分:1)
使用三元运算符以使您的数据更有意义,例如:
PaneldenVerilmisCevapMi = (item.IsAnswer ? "Yes" : "No"),
...
说明:如果IsAnswers
评估为true
,请使用&#34;是&#34;否则,请使用&#34;否&#34;。
请注意,PaneldenVerilmisCevapMi
必须是string
。
<强>更新强>
如果item.IsAnswer
是可空类型,请将if语句更改为:
PaneldenVerilmisCevapMi = (item.IsAnswer.HasValue ? "Yes" : "No"),
答案 2 :(得分:1)
你可以写下这个:
PaneldenVerilmisCevapMi = (item.IsAnswer) ? "Evet" : "No"