PHPベースでExcelやCSVにエクスポートする詳細解説(utf8、gbkエンコード変換あり)_PHPチュートリアル
php が文字化けして Excel にインポートされる理由は、utf8 エンコードが ;?php
header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); 内のすべての utf8 エンコードをサポートしていないためです。 header("プラグマ: public");
header("有効期限: 0"); header( "キャッシュ制御: 再検証が必要、事前チェック = 0"); Content-Type: application/force-download");
header("Content-Type: application/octet -stream");
コードをコピー
コードは次のとおりです:
utf-8", "gb2312", $filename);
echo $filename;
?>
php
header("Pragma: public");
header("Expires: 0");
コードは次のとおりです次のように:
0.?>
ウェブサイトにアクセスしたときにそれを Excel にダウンロードしてください
セルを区別したい場合は、表を使用して Web ページを作成してください
コードをコピーします
コードは次のとおりです:
0.0.header("Content-type:application/ vnd.ms-excel");
0.header("Content-Disposition:filename =php2excel.xls");
0.
0.echo "A1/t B1/t C1/n";
0.echo " A2/t B2/t C2/n";
0.echo "A3/t B3/t C3/n";
0.?>
コードをコピーします
コードは次のとおりです:
if ($action= ='make'){
$fp = fopen("demo_csv.csv","a"); / /csv ファイルを開き、存在しない場合は作成します
$title = array("First_Name","Last_Name") ,"Contact_Email","Telephone"); //データの最初の行
$data_1 = array("42343"," 423432","4234","4234"); Last_Name","Contact_Email","Telephone"); $title = implode(",",$title); / /文字列に分割するには ' を使用します
$data_1 = implode(",",$data_1); // ' を使用して文字列に分割します $data_2 = implode(",",$data_2); // ' を使用して文字列に分割します
gt;"; コードをコピーします
コードは次のとおりです:
function exportToCsv($csv_data, $filename = 'export.csv') {
$csv_terminated = "/n";
$csv_separator = ",";
$csv_enclosed = '"';
$csv_escaped = "// ";
// データベースからデータを取得します
$schema_insert = '';
$out = '';
// データをフォーマットします
foreach ($csv_data as $row)
{
$schema_insert = '';
$fields_cnt = count($row);
//printr($row);
$tmp_str = '';
foreach($row as $v)
{
$tmp_str .= $csv_enclosed.str_replace($cs v_enclosed、$ csv_escaped . $csv_enclosed, $v).$csv_enclosed.$csv_separator;
} // end for
$tmp_str = substr($tmp_str, 0, -1);
$schema_insert .= $tmp_str;
$out .= $schema_insert;
$out .= $csv_terminated;
} // 終了 while
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length : " .strlen($out));
header("Content-type: text/x-csv");
header("Content-Disposition:filename=$filename");
echo $out;
}
/ *
$csv_data = array(array('名前', 'アドレス'));
array_push($csv_data, array($row['名前'],$row['アドレス']));
...
exportToCsv($csv_data,'new_file.csv');
*/
封闭関数二:
/**
* CSVデータをクライアントに適切に出力するためのシンプルなクラス。 PHP 5 には、ファイルへの書き込み (fputcsv()) で同じことを行う組み込みメソッド
* がありますが、多くの場合、クライアントに直接アクセスする方が有益です。
*
* @author Jon Gales
*/
class CSV_Writer {
public $data = array();
public $deliminator;
/**
* データと、オプションで区切り文字をロードします。データは連想配列の配列
* であると想定されます。
*
* @param array $data
* @param string $deliminator
*/
function __construct($data, $deliminator = ",")
{
if (!is_array($data))
{
throw new Exception('CSV_Writer はデータを配列としてのみ受け入れます');
}
$this->data = $data;
$this ->デリミネーター = $デリミネーター;
}
プライベート関数wrap_with_quotes($data)
{
$data = preg_replace('/"(.+)"/', '""$1""', $data);
return sprintf('"%s"', $data);
}
/**
* 選択した区切り文字でエスケープされた CSV ファイルをエコーします
*
* @return void
*/
public function Output()
{
{
foreach ($this->data as $row)
{
$ quote_data = array_map(array('CSV_Writer', 'wrap_with_quotes'), $row);
echo sprintf("%s/n", implode($this->deliminator, $quoted_data));
}
}
/ **
* CSV 出力に適切な Content-Type ヘッダーと添付ファイルを設定します
*
* @param string $name
* @return void
*/
public function headers($name)
{
header('Content-Type: application/csv');
header("Content-disposition:attachment; filename={$name}.csv" );
}
}
/*
//$data = array(array("one","two","three"), array(4,5,6));
$data[] = array( "one","two","three");
$data[] = array(4,5,6);
$csv = new CSV_Writer($data);
$csv->headers('test' );
$csv->output();
*/
3. Excel类を使用します
require_once 'Spreadsheet/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();
/* CSVを生成
$filename = date('YmdHis').'.csv';
$workbook- >send($filename); //ダウンロードする Excel ファイル名を送信
*/
// Excel を生成
$filename = date('YmdHis').'.xls';
$workbook->send($filename) ); //ダウンロードする Excel ファイル名を送信
$workbook->setVersion(8);
$workbook->setBIFF8InputEncoding('UTF-8');
$worksheet =& $workbook->addWorksheet("Sheet -1");
$data[]= array('id','username','company','email','mob','daytime','intent');
$data[] = array( 1,'Laoliang','**Studio','jb51.net','1363137966*',time(),'y');
$total_row = count($data);
$total_col = count( $data [0]);
for ($row = 0; $row for ($col = 0; $col $worksheet ->writeString($row, $col, $data[$row][$col]); // シート 1 にデータを書き込みます
}
}
/*
$worksheet =& $workbook- >addWorksheet( "Sheet-2");
$data[]= array('id','username','company','email','mob','daytime','intent');
$ data[] = array(1,'Laoliang','**Studio','jb51.net','1363137966*',time(),'y');
$total_row = count($data);
$total_col = count( $data[0]);
for ($row = 0; $row for ($col = 0; $col $worksheet->writeString($row, $col, $data[$row][$col]); // シート 2 にデータを書き込みます
}
}
*/
$ workbook->close(); // ダウンロード完了
?>
カテゴリ 2
-----関数説明
Excel ファイルの読み込み
function Read_Excel_File($ExcelFile,$Result)
$ExcelFile Excel ファイル名
$Result 返される結果
関数戻り値 通常は0を返し、それ以外の場合はエラーメッセージを返します
戻り値の配列
$result [シート名] [行] [列] の値は、対応する Excel セルの値
Excel ファイル
function Create_Excel_File( $ExcelFile,$Data)
$ExcelFile Excel ファイル名
$Data Excel テーブル データ
PHP スクリプトの先頭に関数を記述してください
例 1:
require "excel_class.php";
Read_Excel_File("Book1.xls",$return);
for ($i=0;$i
for ($j=0;$j
echo $return[Sheet1][$i][$j]."|"
Read_Excel_File("Book1.xls",$return);
Create_Excel_File("ddd.xls",$return[Sheet1]);
?>
http://www.bkjia.com/PHPjc/327836.html
技術記事
Excel にインポートすると PHP が文字化けする理由は、utf8 エンコードがすべての utf8 エンコードをサポートしていないためです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
