2014-11-03 64 views
0

我有一个包含布尔值的列表。我想将该列表导出为ex​​cel,但它必须对客户有意义。当我按原样导出它时,它会按预期显示TrueFalse之类的值,但这些值可能对客户的看法没有意义。这是我做的Excel导出方式:在导出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”,这意味着“是”在土耳其,但它显示为“真”了。如何在写入excel之前更改这些值?

回答

1

使用三元运算,以与您的数据更有意义,例如:

PaneldenVerilmisCevapMi = (item.IsAnswer ? "Yes" : "No"), 
... 

解释:如果IsAnswers计算结果为true,用“是”,否则,用“无”。

请注意,PaneldenVerilmisCevapMi必须是string

UPDATE:

如果item.IsAnswer是可空类型,改变你的if语句:

PaneldenVerilmisCevapMi = (item.IsAnswer.HasValue ? "Yes" : "No"), 
+0

不需要那些括号。 – 2014-11-03 14:26:32

+0

@PaulZahra对,它更具可读性。 – 2014-11-03 14:27:31

+0

IsAnswer可为空,它会导致错误,如果它们是真/假,我怎样才能检查可空? – 2014-11-03 14:31:00

1

你可以简单地写:

PaneldenVerilmisCevapMi = (item.IsAnswer) ? "Evet" : "No" 
2

你是一个准备之前写入Excel。因此,您可以简单地更改属性以适合您的需求。

PaneldenVerilmisCevapMi = (item.IsAnswer) ? "Evet" : "No" 

例子会为你工作,但你可以用这些对象的东西。例如 - 将它传递给一种方法,将True更改为Evet或其他任何对最终用户而言都是痛苦的东西。

MakeDataReadable(model.ContentExcelList);