1

PHP MySQL Excel シートを USB フラッシュ ドライブなどの指定したパスにエクスポートすることはできますか。それは、私が POS として php を使用しているためです。ボタンをクリックすると、MySQL データベースからレコードが収集され、Excel または CSV ファイルとして USB フラッシュ ドライブにエクスポートされます。

グーグルで検索してみましたが、何も見つからないようです。

ありがとうございました。

4

2 に答える 2

0

ファイルに書き込む必要があります。USB ドライブに書き込むには、正しいファイル パスを指定するだけです。*nix を使用している場合は/media/USB/、Linux または/Volumes/USB/Mac のようになります。Windows の場合は のようになりますF:/

大まかな例は次のようになります

$a = array('1','2','3'); //This is imaginable row from MySQL
$f = fopen('F:/mycsv.csv', 'w');
fputcsv($f, $a);
fclose($f);

のマニュアルfputcsvこちらです。

必要に応じて、アプリケーションでサポートされている方法でファイル パスをユーザーに尋ねることができます。

于 2012-09-06T17:25:59.087 に答える
0

Excelとして保存するのは簡単なプロセスではありませんが、csvを書くのは比較的簡単です。

$temp = tempnam(sys_get_temp_dir(),'tmp');
$handle = fopen($temp,'w');
$query = $pdo->prepare("select * from table");
$query->execute();
$row=$statement->fetch();
$keys=array_keys($row);
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename=export_'.date('dmY').'.csv');
fputcsv($handle,$keys);
while($row){
fputcsv($handle,$row);
$row=$statement->fetch();}
echo file_get_contents($temp);
fclose($handle);

これにより、一時フォルダーに一時ファイルが作成されます。そこにcsvを書き込み、csvヘッダーを付けてエコーアウトすると、ユーザーにファイル保存ボックスが表示されます。ループの前に $row を 1 回呼び出して、array_keys を使用してテーブル列を取得し、それらを最初に出力してから、ループの最後で $row=$statement->fetch() を呼び出しながらループします。

于 2012-09-06T17:31:44.667 に答える