スレッド表示 | フラット表示〕 全トピック 920 件中 664 番目 次≫ ≪前

csvのシート名を設定

created: 2004-03-09 09:48 | modified: 2004-03-11 09:29 | reply: 7

[1379] csvのシート名を設定

user: TAS | created: 2004-03-09 09:48
はじめまして

DBからcsvにダウンロードしますが、csvのシート名を設定できますでしょうか?
デフォルトは、不正な記号が入り、ダウンロード後変更できません

<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=output.csv");
$db=mysql_connect(・・・・
reply: 1381 返信 編集 削除

[1381] 掲示板にようこそ。

user: ゆうじ | created: 2004-03-09 16:34
TASさんこんにちは。
ご丁寧に掲示板に送って頂きありがとうございました。

ダウンロードされたCSVファイル名は、
output.csv のはずですが、
これが変わってしまうということでしょうか。

ならば、
その不正な記号が入ったファイル名を
挙げていただけますか。

また、
ブラウザによっても挙動が違うことがありますので、
試されたブラウザ名とバージョンも教えてください。
Parent: 1379  reply: 1382 返信 編集 削除

[1382] エクセルで表示した場合のシート名

user: TAS | created: 2004-03-09 17:43
まだ不慣れなため、ご迷惑をおかけしてます

ファイル名は output.csv ですが、エクセルで表示した場合のシート名が .csv]output[2] となり[]内はインクリメントします
win2000,excel2000,ie6.0 です
Parent: 1381  reply: 1384 返信 編集 削除

[1384] 他のブラウザでも再現しますか。

user: ゆうじ | created: 2004-03-10 03:22
以下のようなテストコードで試してみましたが
残念ながら再現できませんでした。

<?php
// HTTPヘッダ出力
header('Cache-Control: public'); // IE対策
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=output.csv');

// ファイル読み込み
// DBからCSVを生成する部分の代わり。
$file = 'test.csv';
$fp = fopen($file, 'r');
$buff = fread($fp, filesize($file));
fclose($fp);

// ファイル出力
echo $buff;
?>

サーバ側の環境は、
Win2000pro + Apache1.3.29 + PHP4.3.4
テストコード及びCSVファイル、
mb_internal_encoding などは全て、EUC-JP。
mb_http_output は、SJIS です。

クライアント側は、
Win2000pro + Excel2000 + IE6 or Opera6

csvをExcelで開いても、
ファイル名は、output.csv のままでした。
Windowsのパスの文字数制限
ギリギリのところに保存したりもしてみましたが、
どうしても再現してくれませんでした。


.csv]output[2]

このようにファイル名が崩れてしまっているのは当然おかしいのですが、
[2]がインクリメントされるのは、IEの仕様だったと思います。

別のブラウザでも再現するでしょうか。
再現しないならば、IEの問題ってことになりますね。

また、上記スクリプトを試して頂いて、
現象が再現しないようであれば、
サーバ側に問題ありというところでしょう。

先ずはこのような、
サーバ・クライアントのきリ分けで、
原因を探る必要がありそうです。
Parent: 1382  reply: 1387 返信 編集 削除

[1387] そちらではシート名は何になりましたか?

user: TAS | created: 2004-03-10 12:16
お世話になります、他のブラウザでは試してませんが、そちらではシート名は何になりましたか?
excelで開いた左下の、シートの名前です
よろしくお願いします
Parent: 1384  reply: 1388 返信 編集 削除

[1388] output

user: ゆうじ | created: 2004-03-10 19:41
シート名は、output となっています。

文字コードの問題かとも思い、
EUCやUTF-8で出力してみたり、
CSVファイルの改行コードをLFやCRに変えてみましたが、
データは文字化けをおこしても
シート名は変らず、output となりました。
Parent: 1387  reply: 1390 返信 編集 削除

[1390] 文字コードの問題でしょうか

user: TAS | created: 2004-03-10 20:47
お世話になります

サーバーはLinux、DBはMySQLです
文字コードの問題でしょうか
しばらく、調査してみます
ありがとうございました
Parent: 1388  reply: 1391 返信 編集 削除

[1391] ブラウザに問題ありそうです

user: TAS | created: 2004-03-11 09:29
ファイル保存後、開いた場合はシート名は output.csv で、ブラウザで直接開くと
例のようになります、どうやら、ブラウザに
問題ありそうです
Parent: 1390  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 664 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑