まず、プロジェクトに学生の情報を記録するテーブルstudentがあり、学生の名前、性別、年齢、その他の情報をそれぞれ記録するためのid、名前、性別、年齢があるとします。
1.CSVインポート
do.php は、取得したパラメータに従ってインポートとエクスポートのプロセスをそれぞれ処理する必要があります。PHP の構造は次のとおりです。
if ($action == 'import') { //CSV をインポート
$filename = $_FILES['file']['tmp_name'];
If(空の空 ($filename))
{
echo 'インポートする CSV ファイルを選択してください! ';
出る
}
$ハンドル = fopen($ファイル名, 'r');
$result = input_csv($handle); // csv を解析します
$len_result = カウント($result);
If($len_result==0)
{
エコー「データがありません!」 ';
出る
}
for($i = 1; $i < $len_result; $i++) //各フィールドの値を取得するループ
{
$name = iconv('gb2312', 'utf-8', $result[$i][0]); //中国語のトランスコーディング
$sex = iconv('gb2312', 'utf-8', $result[$i][1]);
$age = $result[$i][2];
$data_values .= "('$name','$sex','$age'),"
}
$data_values = substr($data_values,0,-1) //最後のカンマを削除します
;
fclose($handle); // ポインタを閉じる
$query = mysql_query("学生 (名前,性別,年齢) の値に挿入 $data_values") // データ テーブルにバッチ挿入
If($クエリ)
{
echo 'インポート成功! ';
}その他{
echo 'インポートに失敗しました! ';
}
}
php 独自の fgetcsv 関数は、csv を簡単に処理できることに注意してください。この関数を使用して、ファイル ポインターから行を読み取り、CSV フィールドを解析します。以下の関数は、csv ファイルのフィールドを解析し、配列として返します。
コードをコピーします
コードは次のとおりです:
関数 input_csv($handle)
{
$out = 配列 ();
$n = 0;
while ($data = fgetcsv($handle, 10000))
{
$num = count($data);
for ($i = 0; $i
$out[$n][$i] = $data[$i];
$n++;
}
$out を返します。
}
さらに、データベースにインポートするときは、1つずつ挿入するのではなくバッチ挿入を使用するため、SQLステートメントを構築するときに少し処理を行う必要があります。コードを参照してください。
2.CSVをエクスポートする
csv ファイルはカンマ区切りで構成されるプレーン テキスト ファイルであり、Excel で開くことができ、その効果は xls テーブルと同じであることがわかります。
CSV のエクスポート処理フロー: 学生情報テーブルを読み取る -> レコードをループしてカンマ区切りのフィールド情報を構築 -> ヘッダー情報を設定 -> ローカルにファイルをエクスポート (ダウンロード)
コードをコピーします
コードは次のとおりです:
...
}elseif ($action=='export') //CSV をエクスポート
{
$result = mysql_query("select * from Student order by id asc");
$str = "名前、性別、年齢 n";
$str = iconv('utf-8','gb2312',$str);
While($row=mysql_fetch_array($result))
{
$name = iconv('utf-8','gb2312',$row['name']); //中国語のトランスコーディング
$sex = iconv('utf-8','gb2312',$row['sex']);
$str .= $name.",".$sex.",".$row['age']."n" //引用符で区切る
;
}
$filename = date('Ymd').'.csv' //ファイル名を設定します
;
import_csv($filename,$str); //エクスポート
}
データをローカル コンピューターにエクスポートするには、コードを次のように変更する必要があります:
コードをコピーします
コードは次のとおりです:
関数export_csv($filename,$data)
{
header("コンテンツタイプ:text/csv");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('有効期限:0');
header('プラグマ:パブリック');
$data をエコーします。
}
インポートとエクスポートのプロセスに注意してください。統一された UTF-8 エンコーディングを使用しているため、中国語の文字が見つかった場合は必ずトランスコードする必要があります。そうしないと、中国語の文字化けが発生する可能性があります。
さて、この記事はここまでです。PHP と mysql を組み合わせて Excel をインポートおよびエクスポートする方法と、XML のインポートおよびエクスポートについては、後ほど別の記事で説明する予定ですので、楽しみにしていてください。
true
http://www.bkjia.com/PHPjc/904933.html
技術記事
PHP による CSV ファイルのインポートとエクスポートについて詳しく説明すると、まず、プロジェクトに学生の情報を記録するテーブル Student があり、学生の名前と名前を記録するための ID、名前、性別、年齢が含まれていると仮定します。性別それぞれ...