0

既存のフォームがあり、MySQL データベースからフィールドに直接入力する必要があります。

私の上司は、クライアントのプロファイル税計算が Excel フォームに自動的に入力されることを望んでいました。

これについて何か提案はありますか?

前もって感謝します...

ところで、PHPを使用して

4

3 に答える 3

1

2番目の編集:

<?php

    function connect_db($db_name) {

        $con = mysql_connect('localhost', 'db_user', 'db_pass');
        $seldb = mysql_select_db($db_name);

        if($con && $seldb) {

            return true;

        }
        else {

            return false;

        }

    }

    function get_data_from_mysql() {

        $data_query = "SELECT date, new_users, old_users, income FROM stats ORDER BY date DESC LIMIT 30";

        $data_mysql = mysql_query($data_query);

        $data_finished = array();
        while($data_fetch = mysql_fetch_assoc($data_mysql)) {

            $data_finished[] = $data_fetch;

        }

        return $data_finished;

    }

    function print_to_xls($filename, $data_from_mysql) {

        $file = "xls_archive/" . $filename . ".xls";
        $file_abs_path = "http://www.yoursite.com/xls_archive/" . $file;
        $content = "date\t new users\t old users\t income\n";;

        foreach($data_from_mysql as $data) {

            $content .= $data['date'] . "\t " . $data['new_users'] . "\t " . $data['old_users'] . "\t " . $data['income'] . "\n";

        }

        $saving_file = $file;
        $fo = fopen($saving_file, 'w') or die("can't open file");
        $data_to_write = $content;
        fwrite($fo, $data_to_write);
        fclose($fo);

        header("Content-type: application/ms-excel");
        header("Content-Transfer-Encoding: Binary"); 
        header("Content-Disposition: attachment; filename=" . $file);

        readfile($file_abs_path);

    }

    $connect_to_db = connect_db("db_name");

    if ($connect_to_db) {

        $data_to_print = get_data_from_mysql();

        $today = date("Y_m_d");
        $filename = "dailyreport_" . $today;

        print_to_xls($filename, $data_to_print);

    }
    else {

        print "ERROR";

    }

?>

上記のコードは、MySQL データベースから生成されたファイルから .xls を生成します。
* コードはテストされていませんが、完全に機能すると思います...

最初の編集:

データを表形式でパックし、ヘッダーを次のように Excel のヘッダーに変更することで、手動で行うこともできます。

$file ="dailyreport.xls";
$content = "data1 \t data2 \t data3 \t \n";

header("Content-type: application/ms-excel");
header("Content-Disposition: attachment; filename=" . $file);

print $content;

このコードは、(生成後に) ユーザーにファイル「dailyreport.xls」をダウンロードするように促します。

また、この php ライブラリを試して xls ドキュメントを生成することもできます:
http://phpexcel.codeplex.com/

于 2012-09-28T08:44:05.593 に答える
0

フォーム フィールドなしでフォーム全体を html テーブルとして作成し、コンテンツを Excel スプレッド シートとして提供します。

この回答は詳細を提供します

Excel への HTML テーブル - PHP

スプレッドシートを開くたびにセキュリティ警告が表示されますが、スプレッドシートを作成したのはあなたであり、社内で使用するため、セキュリティ警告は無視できます。

警告は次のようになります...

"The file you are trying to open, '[filename]', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file?"

XLSHTML とは?も参照してください。

于 2012-09-28T09:02:29.600 に答える
0

PHP を使用して MySQL からデータを取得できますが、Excel に表示する方法はさまざまです。mysql と通信して必要なデータとその XML 形式を取得する手順があると仮定します。

Excel へのエクスポートを実行できるようになりました。理想的には、応答タイプを application/vnd.ms-excel に変更し、データを表形式にフォーマットして、Excel が行と列として扱うようにします。

上記は1つの方法であり、他にも多くの方法があります。バックエンドでExcelを生成してユーザーにリンクを提供するか、データをサービスとして公開し、Excelアドオンを作成してサービスからデータを読み取ることができます

于 2012-09-28T08:46:29.313 に答える