导出excel之前更改数据

时间:2014-11-03 14:19:11

标签: c# asp.net-mvc excel

我有一个包含布尔值的列表。我想将该列表导出为ex​​cel,但它必须对客户有意义。当我按原样导出时,它会按预期显示TrueFalse之类的值,但这些值可能对客户的感知没有任何意义。这是我进行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之前更改值?

3 个答案:

答案 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"