Php 从MySQL数据库填充Excel表单字段
我有一个现有表单,需要直接从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);
顺便说一句,使用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;