我有一个简单的PHP脚本,可以将HTML表格转换为CSV文件。由于UTF-8转换原因,我添加了fwrite($fp,"\xEF\xBB\xBF");,并且在MS Excel(Mac和Windows - 最新版本)中打开CSV文件时,除了额外的空行(每隔一行)之外,所有内容都能正常工作。PHP - 将HTML表格转换为CSV添加空行
用Mac打开此预览不显示空行 - 当我删除fwrite($fp,"\xEF\xBB\xBF");它也不会添加空行,但当然我的文本被破坏。
这是我的PHP脚本:
include('simplehtmldom_1_5/simple_html_dom.php');
$table = file_get_contents('hotel.html');
$html = str_get_html($table);
//Generate the CSV file header
header("Content-type: application/vnd.ms-excel");
header("Content-Encoding: UTF-8");
header("Content-type: text/csv; charset=UTF-8");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header('Content-Disposition: attachment; filename=pkb.csv');
$fp = fopen("php://output", "w");
fwrite($fp,"\xEF\xBB\xBF");
foreach($html->find('tr') as $element)
{
$td = array();
foreach($element->find('th') as $row)
{
$td [] = $row->plaintext;
}
fputcsv($fp, $td, ';');
$td = array();
foreach($element->find('td') as $row)
{
$td [] = $row->plaintext;
}
fputcsv($fp, $td, ';');
}
fclose($fp);
?>
HTML表格是相当普遍:
...
而且转换后的CSV用Excel打开的样子说:
也许你会发现我的错误,它会产生这些额外的空行。 非常感谢球员
2017-04-20
neilhurt