3

Web サイト asp.net (C#) から .xls ファイルをエクスポートする機能に問題があります。
すべてを1つの文字列に保存し<tr>ます。関数はうまく機能しますが、洗練された文字 (Ł、ó、ę など) を適切に保存しません。
どうすればこれを解決できますか?

これが私のコードです:

string ExcelExport;
string StringExport;


 (..)

protected void lvUsers_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item is ListViewDataItem)
    {
        (..)

        StringExport = StringExport + string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td></tr>", currentUser.name, currentUser.surname, tel, currentUser.email);
    }
}




protected void btnDownloadList_Click(object sender, EventArgs e)
{
    ExcelExport = "<table><tr><td>Name</td><td>Surname</td><td>Telephone</td><td>E-mail</td></tr><tr><td> </td><td> </td><td> </td><td> </td></tr>" + StringExport + "</table>";

    Response.AddHeader("Content-disposition", "attachment; filename=raport.xls");
    Response.Charset = "utf-8";
    Response.ContentType = "application/ms-excel";
    Response.Write(ExcelExport);
    Response.End();

}
4

2 に答える 2

2

この同様のソリューションで提案されているように、バイト オーダー マーク (BOM)を使用してみてください

protected void btnDownloadList_Click(object sender, EventArgs e)
{
    ExcelExport = "<table><tr><td>Name</td><td>Surname</td><td>Telephone</td><td>E-mail</td></tr><tr><td> </td><td> </td><td> </td><td> </td></tr>" + StringExport + "</table>";

    Response.AddHeader("Content-disposition", "attachment; filename=raport.xls");
    Response.ContentType = "application/ms-excel";
    byte[] BOM = { 0xEF, 0xBB, 0xBF }; // The BOM for UTF-8 encoding.
    Response.BinaryWrite(BOM);
    Response.Write(ExcelExport);
    Response.End();

}
于 2012-11-06T16:02:29.723 に答える
1

utf-8 文字セットにはポーランド語の文字は含まれていません。簡単に検索すると、 ISO 8859-2がそうであることがわかります。Charset を変更して、問題が解決するかどうかを確認してみます。

于 2012-11-06T15:59:47.407 に答える