1

ユーザーが好きな場所に保存できる特定のフォルダーにExcelをエクスポートしたいと思います。現在、Excelへのエクスポートはすでに成功していますが、ローカルでテストして、ローカルサーバーフォルダーにダウンロードしました。誰かが私を助けてくれることを願っています。ありがとうございました。

$id=$_GET['id'];
$excel=new ExcelWriter("./excel/company".$id.".xls");
if($excel==false)   
echo $excel->error;
$myArr=array("NO", "COMPANY", "ADDRESS1", "ADDRESS2", "ADDRESS3", "POSTCODE", "CITY", "STATE", "PHONE NO", "FAX NO", "EMAIL", "WEBSITE");
$excel->writeLine($myArr);
$qry=mysql_query(" SELECT organizations.*, states.state, cities.city FROM organizations, states, cities WHERE idOrg='$id' AND organizations.state_id=states.idState AND organizations.city_id=cities.idCity");
if($qry!=false)
{
    $i=1;
    while($res=mysql_fetch_array($qry))
    {
        $myArr=array($i,$res['companyName'], $res['add1'], $res['add2'], $res['add3'], $res['postcode'], $res['city'],$res['state'], $res['phoneNo'], $res['faxNo'], $res['email'], $res['website']);
        $excel->writeLine($myArr);
        $i++;
    }
}
4

3 に答える 3

3

あなたの質問のタイトルは、PHP を使用してクライアントの PC に Excel ファイルを保存できるという仮定の下にあることを示唆しています。ではない正確に。ローカル Web サーバーに保存できます (既にわかっているように)。ただし、それをクライアント PC に転送するには、ダウンロードとして提供する必要があります。

ファイルの書き込みが完了したら (既に行っているように)、サーバー上のファイルへのリンクをユーザーに提示します。その後、PC のどこにダウンロードするかを選択できます。

もう 1 つの可能性は、Excel ファイル データを HTTP 応答として書き出し、Content-Typeヘッダーをapplication/vnd.ms-excel(またはファイルの種類に適したもの) や( exampleContent-Disposition )のようなものに設定することです。attachment

私はExcelWriterに詳しくないので、何らかのdump機能があるかどうかはわかりません。おそらく、ファイルを書き出した後、次のようにするだけです。

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename=company'. $id .'.xls');

echo file_get_contents('./excel/company'. $id .'.xls');
于 2012-12-31T15:17:36.613 に答える
1

解決策は彼らのドキュメントにあります

http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.intro.php

上記サイトより抜粋

// sending HTTP headers
$workbook->send('test.xls'); 

これは、スプレッドシートをブラウザに送信していることを意味します。しかし、スプレッドシートを自分のマシンに保存したいだけの場合はどうでしょうか? その行を省略して、ワークブック コンストラクターに有効なファイル パスを指定するだけです。

たとえば、最初の例で作成した同じスプレッドシートを「test.xls」という名前のファイルに保存する場合は、次のようにします。

次に、ユーザーにそのファイルへのリンクを示して、好きな場所に保存できるようにすることができます

于 2012-12-31T15:17:13.580 に答える
0
"./excel/company".$id.".xls"

相対パスですか? これが保存先だと確信していますか? $_SERVER['DOCUMENT_ROOT'] を使用してドキュメントルートを取得し、それとパスを次のように使用できます。

$_SERVER['DOCUMENT_ROOT'] . "/excel/company".$id.".xls

また、ファイルを閉じることも忘れないでください。

$excel->close();
于 2012-12-31T15:14:23.093 に答える