phpexcel 读取csv大文件只读取显示A列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了phpexcel 读取csv大文件只读取显示A列相关的知识,希望对你有一定的参考价值。

$file = $files;
$type = strtolower( pathinfo($file, PATHINFO_EXTENSION) );
$path0 = $fdirs;

//$file = iconv('GBK', 'UTF-8//TRANSLIT//IGNORE', $file);

if (!file_exists($path0)) die('no file!');//根据不同类型分别操作
if( $type=='xlsx'||$type=='xls' )
$objphpExcel = PHPExcel_IOFactory::load($path0);
else if( $type=='csv' )
$objReader = PHPExcel_IOFactory::createReader('CSV')
->setDelimiter(',')
->setInputEncoding('GBK')//不设置将导致中文列内容返回boolean(false)或乱码
->setEnclosure('"')
->setSheetIndex(0);

$objPHPExcel = $objReader->load($path0);

else die('Not supported file types!');


$sheet = $objPHPExcel->getSheet(0); // 读取第一个工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数

$str = '';
$str .= '<table border="1" cellspacing="0" bordercolor="#eeeeee" cellpadding="5" width="100%">';

//按照excel表格格式输出A-Z列
$str .= '<tr>';
$str .= '<td></td>';
for($column = 'A'; $column <= $highestColumm; $column++)

$str .= '<td>' .$column. '</td>';

$str .= '</tr>';

//按照excel表格的格式从1开始累计
for ($row = 1; $row <= $highestRow; $row++)//行数是以第1行开始
$str .= '<tr>';
$str .= '<td>' .$row. '</td>';
//输出excel表格的内容
for($column = 'A'; $column <= $highestColumm; $column++)
$str .= '<td>' .$sheet->getCell($column.$row)->getValue(). '</td>';

$str .= '</tr>';

$str .= '<table>';

echo $str;

参考技术A 虽然有Excel操作类,不建议使用。php操作excel本来就很不地道,表格复杂点就出错,特别是在linux系统上就更麻烦了。
CSV是通用格式,你可以用excel另存为csv格式,再交给php处理。php有专门的fgetcsv()来读取csv中的数据。追问

谢谢你的回复 不过我试过了fgetcsv() 且在读取上传的win电脑表格软件另存的csv之前将其转utf-8 但在linux上还是乱码的

参考技术B 嗯不知道如果不行的话 就说明你买的iphone嗯盗版的

对PHPExcel一些简单的理解 及怎么读取单元格数据

参考技术A 常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。 1. 以.csv格式读取 将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。本回答被提问者采纳

以上是关于phpexcel 读取csv大文件只读取显示A列的主要内容,如果未能解决你的问题,请参考以下文章

PHP 读取和导出 CSV文件

php怎么导出大量数据的Excel

对PHPExcel一些简单的理解 及怎么读取单元格数据

使用php读取xlsx文件[关闭]

php怎么导出大量数据的Excel,phpexcel

使用PHPExcel读取大文件(20M左右)时,报内存不足。