PHP-php如何读取excel?

发布于 2016-12-29 13:14:05 字数 48 浏览 1280 评论 5

php读取excel的类,越简单越好,只读取数据就行。网上找了几个使用起来很费劲。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

瑾兮 2017-10-17 01:38:59

不知道你是否考虑csv格式,读取时比较简单,

$handle = fopen ($_FILES['csvFile']['tmp_name'],"r");
$parameter = array();
$i=0;
while ($data = fgetcsv($handle,1000,',')){
if(empty($data[0]) || empty($data[1]) || empty($data[2])) continue;
$parameter['items'][$i]['userId'] = $data[0];
$parameter['items'][$i]['itemId'] = $data[1];
$parameter['items'][$i]['num'] = $data[2];
$i++;
}
}

归属感 2017-10-13 21:43:38

我以前用的是phpExcelReder,我感觉这个很好用啊,而且使用起来了简单。

$xl_reader= new Spreadsheet_Excel_Reader ( );
$xl_reader->read("excel_test.xls");

http://sourceforge.net/projects/phpexcelreader/

甜柠檬 2017-09-14 16:01:15

可以使用PhpExcel,下面有一个读的例子,可参考一下。

 $ExcleData = commonPhpExcel::readExcel($fileName[1]);
if(is_array($ExcleData[0]['cells']) && count($ExcleData[0]['cells'])>1){
for ($i=2;$i<=count($ExcleData[0]['cells']);$i++){
$RestArr[$j] = $ExcleData[0]['cells'][$i];
$j++;
}
}

浮生未歇 2017-03-01 03:06:29

先下载:http://www.xiumu.org/blog-uploads/2012/02/phpExcelReader.zip

 // 测试文档
require_once 'Excel/reader.php';

// Excel文件($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();

// 设置输入编码 UTF-8/GB2312/CP936等等
$data->setOutputEncoding('UTF-8');

/***
* 如果服务器不支持 iconv 添加下面的代码使用 mb_convert_encoding 编码
* $data->setUTFEncoder('mb');
*
**/

/***
* 默认情况下行和列的技术从1开始
* 如果要修改起始数值,添加:
* $data->setRowColOffset(0);
*
**/

/***
* 设置工作模式
* $data->setDefaultFormat('%.2f');
* setDefaultFormat - 最大兼容模式
*
* $data->setColumnFormat(4, '%.3f');
* setColumnFormat - 列的格式设置(仅适用于数字字段)
*
**/

$data->read('jxlrwtest.xls');

/*

$data->sheets[0]['numRows'] - 行数
$data->sheets[0]['numCols'] - 列数
$data->sheets[0]['cells'][$i][$j] - 行$i 列$j里的数据

$data->sheets[0]['cellsInfo'][$i][$j] - 文件的拓展信息

$data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
当type为unknown时使用raw值,因为元素中包含'0.00'的格式。
$data->sheets[0]['cellsInfo'][$i][$j]['raw'] = 未被格式化的值
$data->sheets[0]['cellsInfo'][$i][$j]['colspan']
$data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
*/

error_reporting(E_ALL ^ E_NOTICE);

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo """.$data->sheets[0]['cells'][$i][$j]."",";
}
echo "n";

}

//print_r($data);
//print_r($data->formatRecords);

来自:http://www.xiumu.org/technology/php-import-read-excel-class-phpexcelreader.shtml

灵芸 2017-02-19 17:46:05

我前几天刚好也用到了PHP读取Excel我用的是phpexcel最新的版本。
下面是代码

 require_once './PHPExcel/PHPExcel.php';
$_ReadExcel = new PHPExcel_Reader_Excel2007();
//为了可以读取所有版本Excel文件
if(!$_ReadExcel->canRead(PATH.'/'.$_data['path'])) $_ReadExcel = new PHPExcel_Reader_Excel5();

//不需要读取整个Excel文件而获取所有工作表数组的函数,感觉这个函数很有用,找了半天才找到
// $_sheetNames = $_ReadExcel->listWorksheetNames(PATH.'/'.$_data['path']);

//读取Excel文件
$_phpExcel = $_ReadExcel->load(PATH.'/'.$_data['path']);
//获取工作表的数目
$_sheetCount = $_phpExcel->getSheetCount();

$_newExcel = array();
$_excelData = array();

//循环工作表
for($_s = 0;$_s<$_sheetCount;$_s++) {
//选择工作表
$_currentSheet = $_phpExcel->getSheet($_s);
//取得一共有多少列
$_allColumn = $_currentSheet->getHighestColumn();
//取得一共有多少行
$_allRow = $_currentSheet->getHighestRow();
for($_r = 2;$_r<=$_allRow;$_r++){

for($_currentColumn='A';$_currentColumn<=$_allColumn;$_currentColumn++){
$address = $_currentColumn.$_r;
$_newExcel[] = $_currentSheet->getCell($address)->getValue();
}
// 内部判断未详细
$_excelData['customer_name'] = $_newExcel[0];//客户姓名
$_excelData['customer_tel'] = $_newExcel[1];//客户手机
$_excelData['staff_id'] = $_data['staff_id'];//员工表id,先默认为0 -》发展人
$_excelData['tpl_id'] = $_data['tpl_id'];//模板id
$_excelData['activity_id'] = $_data['activity_id'];//模板id
$_excelData['mark'] = 1;//发送标记1为未发送的短信
$_excelData['status'] = 2;//是否完成认证2未完成
$_excelData['send_id'] = $_SESSION[C('USER_AUTH_KEY')]['id'];//短信发送人
$_excelData['posttime'] = time();
// 清空表数组
$_newExcel = array();
// // 写入数据库
$_status = $this->table(C('DB_PREFIX').'records')->data($_excelData)->add();
$_start++;
if ($_start === 1) $startId = $_status;
// 错误返回错误信息
if (!$_status) return Tool::_return_check(false,'Excel文件写入数据库失败,错误姓名'.$_excelData['customer_name'].',请检查!!!');
}
unset($_currentSheet);
}

你要是没有最新的,email我,我可以发给你

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文