0

我有一个现有的表单,我需要直接从 MySQL 数据库填充字段。

我的老板希望将我们客户的个人资料税计算自动输入 Excel 表格。

对此有何建议?

提前致谢...

顺便说一句,使用 PHP

4

3 回答 3

1

第二次编辑:

<?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 电子表格提供。

这个答案提供了更多细节

HTML表格到Excel - 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 将其视为行和列。

以上是一种方式,还有很多其他方式,您可以在后端生成excel并为用户提供链接,或者您可以将数据公开为服务并编写一个excel插件来从您的服务中读取数据

于 2012-09-28T08:46:29.313 回答