作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将数据从 mysql 表导出到 Excel 工作表。我正在使用 excel 2007。曾经这段代码工作正常,但今天我遇到了问题。请指导我哪里做错了。我有大约 60,000 行的大量数据。
<?php
/*
Export MySQL to Excel using PHP & HTML tables
Author: Vlatko Zdrale, http://blog.zemoon.com
Look but don't touch :)
*/
include "mysql_connection.php";
//$dbTable = 'info'; // table name
$con=open_db_connection();
$sql = "select info_id, name, category_list.category, company_name, company_address, company_phone, date from info, city_list, category_list where city=cid and info.category=id";
$result = @mysql_query($sql) or die("Couldn't execute query:<br>".mysql_error().'<br>'.mysql_errno());
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //define header info for browser
header('Content-Disposition:attachment; filename=information-'.date('Ymd').'.xlsx');
header('Pragma: no-cache');
header('Expires: 0');
echo '<table><tr>';
for ($i = 0; $i < mysql_num_fields($result); $i++) // show column names as names of MySQL fields
echo '<th>'.mysql_field_name($result, $i).'</th>';
print('</tr>');
while($row = mysql_fetch_row($result))
{
//set_time_limit(60); // you can enable this if you have lot of data
$output = '<tr >';
for($j=0; $j<mysql_num_fields($result); $j++)
{
if(!isset($row[$j]))
$output .= '<td> </td>';
else
$output .= "<td>$row[$j]</td>";
}
print(trim($output))."</tr>\t\n";
}
echo('</table>');
?>
这非常重要,请指导我。提前致谢。
最佳答案
您将收到该消息,因为该文件不是 OfficeOpenXML xlsx 文件,而是包含带有 .xlsx 扩展名的 HTML 标记的文件。您告诉 Excel 该文件的扩展名是一种格式,但实际上它是另一种格式,并且它让您知道内容与扩展名不匹配。只要它可以干净地读取 HTML 标记,它仍然应该成功加载,但总是会发出此消息。
最新版本的 Excel 比早期版本对此更加挑剔。
如果您想删除该消息,则可以将 .xlsx 重命名为 .html 文件,以便扩展名与内容匹配(然后需要导入到 Excel 中,或者修改文件关联,以便 html文件使用 Excel 打开);或者给它一个带有 csv 扩展名的制表符分隔值文件(可以通过双击打开),但您无法使用此选项添加任何格式;或者给它一个真正的 OfficeOpenXML .xlsx 文件
关于php - 如何将mysql表数据导出到excel 2007,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12526363/
我是一名优秀的程序员,十分优秀!