gpt4 book ai didi

php - 为 PHPexcel 正确编码 CSV 文件

转载 作者:搜寻专家 更新时间:2023-10-31 20:43:36 25 4
gpt4 key购买 nike

我有一个 Json,解码它,用 PHP 将它写入 CSV 文件,借助 PHPexcel 将 CSV 转换为 .xls

目标是从 JSON 正确导出到 excel 文件。我遇到编码问题,主要是 Excel for Mac 2011,它不支持 UTF-8 CSV 文件:link如果我在我的 Mac 上预览它(空格键),它看起来编码得很好。问题出在 excel 上。

首先是 CSV 的代码:

$file_csv = fopen('files/file.csv', 'w');

然后是 JSON:

$response_data = json_decode($connection->response['response'], true);
foreach ($response_data as $value)
{
//take the data I have 10 strings here in reality
$text_lang = $value['lang'];
$date = $value['date'];
//insert into the csv
$details = array($text_lang, $date );
fputcsv($file_csv, $details);
};
fclose($file_csv);

现在,如果我用 excel 导入这个 CSV,我会遇到 UTF-8 问题。如果我用文本编辑器转换它,例如Textmate 转为 UTF-16LE,再导入 Excel 一切顺利。

以及创建 .xls 的 PHPExcel 代码 from here :

$objReader = PHPExcel_IOFactory::createReader('CSV');
$objPHPExcel = $objReader->load('files/file.csv');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('files/summary.xls');

summary.xls 在 UTF-8 上损坏,打开时需要修复。


我的第一次尝试是在 PHP 中将上述 file.csv 转换为 UTF-16LE,以查看它是否适用于 excel。我在fputcsv之前用了iconv,excel显示的是中文...

现在我想将 csv 文件编码为 UTF-16LE 并使用 PHPExcel 加载它。我使用了以下几行但没有用。可能是因为我用 incov 创建的 .csv 是部分(?)UTF-8 和 UTF-16LE。

$objReader->setInputEncoding('UTF-16LE');
$objPHPExcel = $objReader->load('file.csv');

目标是将 JSON 中的数据呈现为 .xls(或 .xlxs)文档,而不会在 excel 上出现编码问题。

最佳答案

$objReader->setInputEncoding('');

$objPHPExcel = $objReader->load('file.csv');

这对我来说效果很好。

关于php - 为 PHPexcel 正确编码 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com