2014-11-03 49 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);