- PR -

DataGridをWEBフォーム上でExcel表示してシート名が文字化け

1
投稿者投稿内容
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-05-14 14:26
お世話さまです。

DataGridをExcelシートとしてWEBフォームにシート名をつけて表示したいのですが、
1バイトコードの名称(ローマ字表記等)では上手く行くのですが、
2バイトコード(倍角漢字)だと文字化けしてしまいます。

Dim fname As String
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift-jis")
Response.ContentType = "application/vnd.ms-excel"
fname = System.Web.HttpUtility.UrlEncode("総括表.xls")
Response.AppendHeader("content-disposition", "attachment; filename=" + fname)

過去ログを参考にして上記のようにコーディングしてみたのですが、
これ以外にも何か指定が必要なのでしょうか?

文字化けに関する具体的な現象は次のようになっています。

・「開く」か「保存」かを聞いてくるポップアップ画面のファイル名は
 正しく「総括表.xls」と表示される。
・「保存」すると、保存されたファイル名もそのシート名も正しく「総括表.xls」
 と表示される。
・「開く」でWEB画面にExcelシートを表示するとそのシート名が
 「%e7%b7%8f%e6%8b%ac%e8%a1%a81」と化け、ファイル名も
 「%e7%b7%8f%e6%8b%ac%e8%a1%a8[1].xls」と表示される。

以上、ご教示のほど宜しくお願い致します。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-05-21 16:49
自己レスです。

MSに問い合わせたところ、下記の方法でシート名に漢字名称を
つけることができました。

<HTML xmlns:x="urn:schemas-microsoft-com:office:excel">

<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"content="http://schemas.microsoft.com/intellisense/ie5">

<!-- Excel XML タグの記載例 ここから -->

<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Sample Workbook</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo/>
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->

<!-- Excel XML タグの記載例 ここまで -->

</HEAD>

MSからの回答にもあったんですが、結局、asp.vbのコード内で
漢字名称をつけることはできないようです。
moondog
大ベテラン
会議室デビュー日: 2003/04/11
投稿数: 165
投稿日時: 2003-05-21 16:51
引き続き事故レスです。^^;

<x:Name>Sample Workbook</x:Name>

のことろを

<x:Name>総括表</x:Name>

とすることでシート名が”総括表”になりました。
1

スキルアップ/キャリアアップ(JOB@IT)