Php 从MySQL数据库填充Excel表单字段

Php 从MySQL数据库填充Excel表单字段,php,mysql,excel,file,Php,Mysql,Excel,File,我有一个现有表单,需要直接从MySQL数据库填充字段 我的老板希望我们客户的个人资料税务计算自动输入Excel表格 有什么建议吗 先谢谢你 顺便说一句,使用PHP第二次编辑: <?php function connect_db($db_name) { $con = mysql_connect('localhost', 'db_user', 'db_pass'); $seldb = mysql_select_db($db_name);

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

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

有什么建议吗

先谢谢你


顺便说一句,使用PHP第二次编辑:

<?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";

    }

?>
此代码将(在生成后)提示用户下载文件“dailyreport.xls”

您还可以尝试使用此php库生成xls文档:

您可以使用PHP从MySQL获取数据,但在Excel中显示数据可以通过多种方式完成,假设您有一个与MySQL对话的过程,以XML格式获取所需的数据及其格式

现在您可以导出到excel,理想的情况是将响应类型更改为application/vnd.ms-excel,并将数据格式化为表格格式,以便excel将其视为行和列


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

将整个表单创建为html表,不带表单字段,然后将内容作为excel电子表格提供

这个答案提供了更多细节

每次打开电子表格时,您都会收到安全警告,但由于是您创建的,而且是供内部使用,因此您可以忽略安全警告

警告会说类似于

“您试图打开的文件“[filename]”的格式与文件扩展名指定的格式不同。请在打开该文件之前确认该文件未损坏且来源可靠。是否打开该文件?”


另请参见

好答案,您也可以使用
$content=“数据1…
etcm我知道应该将您的代码添加到哪个文件中吗?它在index.php上吗?这对你来说更像是一个问题:)你如何组织你的代码。。。如果你想让我帮助你,请更具体地说明什么是用php生成xls所需的过程…啊,很抱歉。下面是我所说的一个例子:但与此相反,如果我的客户登录我的网站并单击菜单上的BIR Form 1601-E命令,MySQL将自动检索他们的公司简介并填写表单上的字段。我已经编辑了我的答案。我写的代码应该为您指出正确的方向。只需修改数据库连接函数和查询以适合您的表结构,然后再试一次。在尝试使用脚本之前,请先将目录“xls_archive”设置为public_html。我没有测试代码,但它应该能立即工作。很简单,你不需要excel对象,你需要通过php构建一个表格格式,并将响应内容类型设置为excel,它会提示用户下载excel文件。请在某处上传一个屏幕截图,我在手机上发表评论,所以看不到zip文件。其他人建议我使用fpdf,它将使用pdf表单创建模板,在这个时候,我可以添加字段来创建php表单。如果你要输出到xls,那么每个单元格实际上都是一个输入字段,这样,您可以在电子表格上使用Calc中的值,并在电子表格上更改它们。您想在电子表格中使用“表单控件”吗?
$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;