PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为PHPexcel正确编码CSV文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个Json,对其进行解码,然后使用PHP将其写入CSV文件中,然后借助PHPexcel将CSV转换为.xls

目标是正确地从JSON导出到excel文件.
我在编码方面遇到麻烦,主要是因为Excel for Mac 2011不支持UTF-8 CSV文件link如果我在Mac上预览(空格键),它看起来编码正确.麻烦是卓越.

首先是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 from herePHPExcel代码

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

UTF-8上的sumMary.xls损坏,打开时需要修复.

我的第一次尝试是将上述file.csv转换为PHP中的UTF-16le,以查看是否可以在excel中使用.
我在fputcsv和Excel显示中文单词之前使用过iconv …

现在,我想将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');

这对我来说很好.

大佬总结

以上是大佬教程为你收集整理的为PHPexcel正确编码CSV文件全部内容,希望文章能够帮你解决为PHPexcel正确编码CSV文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: