1

以下は、テーブルの内容を CSV にエクスポートするために使用している (粗い) メソッドです。これはその場で思いつきましたが、表のデータは SharePoint サイトで作成された Excel スプレッドシートから読み込まれています。その変換処理が原因なのか、私のやり方が原因なのかわかりませんが、大量のこれらの文字Âがセルに取り込まれています。

また、多数のレコードで、フィールドが 1 行ではなく 2 行に分割されています。これは、(Excel を使用するのではなく) プログラムで CSV にエクスポートする最初の試みであるため、どんな助けも大いに感謝します。

コントローラーの方法

    public ActionResult ExportToCsv()
    {
        using (StringWriter writer = new StringWriter())
        {
            var banks = db.BankListMaster.Include(b => b.BankListAgentId).ToList();

            writer.WriteLine("Bank Name, EPURL, AssociatedTPMBD, Tier, FixedLifeMasterSAF, VariableLifeMasterSAF, FixedLifeSNY, VariableLifeMasterSNY, SpecialNotes, WelcomeLetterReq, " +
                             "BackOfficeNotification, LinkRepsToDynamics, RelationshipCode, INDSGC, PENSGC, LicensingContract, MiscellaneousNotes, ContentTypeID1, CreatedBy, MANonresBizNY, Attachment");

            foreach (var item in banks)
            {
                writer.Write(item.BankName + ",");
                if(String.IsNullOrWhiteSpace(item.EPURL))
                {
                    writer.Write(item.EPURL + ",");
                }
                else
                {
                    writer.Write(item.EPURL.Trim() + ",");
                }
                writer.Write(item.AssociatedTPMBD + ",");
                writer.Write(item.Tier + ",");
                writer.Write(item.LicensingContract + ",");
                writer.Write(item.MiscellaneousNotes + ",");
                writer.Write(item.ContentTypeID1 + ",");
                writer.Write(item.CreatedBy + ",");
                writer.Write(item.MANonresBizNY + ",");
                writer.Write(item.Attachment);
                writer.Write(writer.NewLine);
            }

            return File(new System.Text.UTF8Encoding().GetBytes(writer.ToString().Replace("Â", "")), "text/csv", "BankList.csv");
        }
    }
4

1 に答える 1