既存のフォームがあり、MySQL データベースからフィールドに直接入力する必要があります。
私の上司は、クライアントのプロファイル税計算が Excel フォームに自動的に入力されることを望んでいました。
これについて何か提案はありますか?
前もって感謝します...
ところで、PHPを使用して
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/
フォーム フィールドなしでフォーム全体を html テーブルとして作成し、コンテンツを Excel スプレッド シートとして提供します。
この回答は詳細を提供します
スプレッドシートを開くたびにセキュリティ警告が表示されますが、スプレッドシートを作成したのはあなたであり、社内で使用するため、セキュリティ警告は無視できます。
警告は次のようになります...
"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 とは?も参照してください。
PHP を使用して MySQL からデータを取得できますが、Excel に表示する方法はさまざまです。mysql と通信して必要なデータとその XML 形式を取得する手順があると仮定します。
Excel へのエクスポートを実行できるようになりました。理想的には、応答タイプを application/vnd.ms-excel に変更し、データを表形式にフォーマットして、Excel が行と列として扱うようにします。
上記は1つの方法であり、他にも多くの方法があります。バックエンドでExcelを生成してユーザーにリンクを提供するか、データをサービスとして公開し、Excelアドオンを作成してサービスからデータを読み取ることができます