PHP の execl 解析
php-excel-reader ツールを使用して execl を解析していますが、現在の状況は次のようなものですPHP を使用して Excel を解析する方法がわかりません
しかし、急いでいる場合や、顧客から提供された Excel テーブルの数が非常に限られている場合は
ソフトウェア navicat を使用して、テーブルをデータベースに直接保存して、PHPで操作する
以前、分からないところを回避してやりました... 技術向上には向いていませんが、成果を追求するにはかなり有効です。
もう 1 つ: navicat のインポート機能は非常に強力です... ...
2) 上下の表の内容を 2 つの異なる Excel に保存し、情報を別々に読み取ることができます。
2階の友人に返信します。navicatはmysqlの開発ツールです。execlをアップロードしてデータベースに保存したいのですが、教えていただいた方法はあまり良くありません。 。ありがとうございます
2番目の質問、インポート時に説明しやすいように、1つのテーブルのデータを1つのシートに保存するのが最善の方法です。 2 つのテーブルのデータを 1 つのシートに保存したい場合は、分割条件 (たとえば、2 つのテーブルの間の 2 行を空白のままにする) を定義し、ループで行を処理して行が保存されているかどうかを判断することもできます。分離された行は、2 つのテーブルのデータが失われています。
Floor 6 への返信、そうですね、あなたのアイデアはとても良いですね、検討してコードを書きます。 。ありがとうございます
効果は次のとおりです。ループが 9920000 (河南省の小計) に達すると、このデータをデータベースに挿入できないため、ここで終了し、次のループにジャンプします。これら 2 つの終了ループは、いずれもデータベースに null 値を挿入します。どこを間違えたのか教えてください。ここで書いたのは、周期的な[月間売上計画]の欄で、9920000になったら停止するはずです。
if($month_sales_plan=$data->sheets[0]['cells'][8][2]){
$month_sales_plan;
echo $month_sales_plan
}
else{
$ month_sales_plan=$data; ->sheets[0]['cells'][$i][5];
}
コードがわかりません。 提案: インポートされた Excel テーブルは指定された形式である必要があります。この形式は次のとおりです。プログラムによって解釈可能であり、プログラム内で必要なデータに解釈できます。
つまり、コードもデータファイルも与えられていません
例を挙げなければなりません
$PHPExcel = new PHPExcel_Reader_Excel5();$sheet = $PHPExcel->load('test1.xls')->getActiveSheet();$allRow = $sheet->getHighestRow();for($i=1; $i<=$allRow; $i++) { if($sheet->getCell("B$i")->getValue() != '') echo $sheet->getCell("B$i")->getValue() . ' : ' . $sheet->getCell("C$i")->getValue(), '<br>';}A : 4650000
11階のお兄さん、phpexeclって何のツールを使っているんですか? ? 、ファイルexcel_reader2.phpを使用していますが、phpexeclの1.7.9バージョンをダウンロードしました。今はphpexecl1.7.9バージョンを使用してコードを実行しています。以下に示すように、そこにはデータがありません。
11 階の友人、echo $sheet->getCell("B$i")->getValue() を通じて対応する値を取得できますが、小計とスキップと何の関係があるのですか?わかりません。 。アドバイスするのを忘れていました。 。
東西ガスパイプラインからの天然ガスの売買に関する日次レポート:
レポート日付: 5 月 27 日 8:00 ~ 5 月 28 日 8:00:
ガス販売量 (Nm3):
ユーザー名:
月間売上計画1: 河南省
46500002:
24800003:
2790000河南省 小計:
=SUM(E5:E7)1: 安徽省
83700002:
27900003:
2666000 0安徽省の小計:
=SUM(E9:E11)1 : 江蘇省保存
11 階の兄弟、出力ステートメント echo $sheet->getCell("E$i")->getValue()."076402276aae5dbec7f672f8f4e5cc81";
Here There を追加しました。月次売上計画の4650000、2480000、2790000はexeclごとに内容が異なる可能性があるため、$sheet->getCell("E$i")->getValue()に従って取得します。間違いなく不正確なので、小計や =SUM などの単語に基づいて判断するのが最善の方法です。つまり、そのような単語に関しては、スキップしてサイクルを続行する方法がわかりません。機能しないと書きました。 。
効果:
月間販売計画
4650000
2480000
2790000
=SUM(E5:E7)
8370000
2790000
26660000
=SUM( E9:E11)
4650000
15500000
8680000
6200000
310000
2790000
3720000
4030000
3100000
4960000
2170000
1550000
2480000
3720000
1550000
=SUM(E13:E27)
6200000
6200000
4650000
4650000
1240000
1240000
=SUM(E8,E12,E28,E30,E32, E34)
読み取る具体的な列は、execl ファイルによって異なります
見ていないので、言うのは難しいです
いや、この判定文の書き方がわかりません。 。
11 階の兄弟、この execl を見てください。execl 内のすべての小計行がデータベースに保存されないようにする方法はありますか?
execl を解析する関数を探しています。そのような execl が表示されるように、 SUM(J9 :J11) 、何をするか、対応する特定の値に変換する方法。 。お願いします
execl で SUM のような関数を使用すると、解析結果は次の図のようになります
PHP マスターに来て解決策を尋ねることはできますか? ありがとうございます
execl ファイルを公開してください。ネットワークに接続して共有してください
22 階の友人、アップロードしました。ウェブサイトは http://download.csdn.net/my です
22 階の友人、[リソース] にアップロードしました、助けてください見てみると、なぜ解析された関数になるのかわかりません。数字の代わりに、
まだ誰も私に返信しません
11 階の兄弟、この execl を見てください。execl 内のすべての小計行がデータベースに保存されないようにするにはどうすればよいですか
$data=array();//Save読み取りデータ
$cols;//列座標 例: A、B、C…。 phpexcel は
$totalLine;// 合計行数を取得するメソッドを提供します。 phpexcel は
$line=1; for($line ;$line //データ行は Foreach ($ COLS AS $ Col) {
$ Coor = $ color. $ LINE; // 座標 EG: A1, B1, C1 .....
$ value; $ coor
if (preg_match ('/small meter/', $ value)) {// ここで判断します
Break; // 「小さなスキーム」を読んだ場合は行を変更します } else {
$row[ ]=$value;
そうですね、試してみます
このような通常の Excel テーブルを読み取るのはなぜ難しいのでしょうか?直接挿入による問題が心配な場合は、ループされた配列を配列に格納し、論理的な判断 (ループから抜け出すタイミングなど) を回避するために不要なデータを手動で除外することができ、基本的にはすぐに完了します。
28階の友達 手動でフィルターしますか? ?これはあまり内部的なものではありません。これを読み取った後、データベースに保存するものをクライアント領域でフィルタリングすることはできません。これはクライアントを不快にさせます。 。
小計の行を読み込むときはスキップしてください... マージされたものは不規則なので、CV に変換した方がはるかに良くなります
· マージされたものは不規則なので、次のようにするとさらに良くなります。 Cv に変換するのはなぜですか?? CVSに変換するようなことはありませんか?判決文に「合計」という言葉を読むと読み飛ばしたくなる。