PHP读取Excel 之 Spreadsheet_Excel_Reader和Writer

来源:互联网 发布:天池大数据竞赛 2016 编辑:程序博客网 时间:2024/05/22 05:38
之前看到过好多关于PHP导出Excel的文章,自己也通过不少方法实现过,例如,echo一个Table,然后将header修改为Excel即可。

其实在众多方法中感觉Pear中的Spreadsheet_Excel_Writer很是好用。

关于Spreadsheet_Excel_Writer的安装本文不予介绍,可通过Google找到答案:) 也可参考:http://pear.php.net/package/Spreadsheet_Excel_Writer/download
  1. <?php
  2. //调用Writer.php
  3. require_once 'Spreadsheet/Excel/Writer.php';
  4. //创建Workbook
  5. $workbook = new Spreadsheet_Excel_Writer();
  6. //定义导出Excel文件名
  7. $workbook->send('test.xls');
  8. //创建Worksheet
  9. $worksheet =& $workbook->addWorksheet('My first worksheet');
  10. //设置字体大小
  11. $format_column = & $workbook->addformat(array('Size'=>9,'Bold'=>1));
  12. //数据写入
  13. //标题行(第一行)
  14. $worksheet->write(0, 0, 'Name', $format_column);
  15. $worksheet->write(0, 1, 'Age', $format_column);
  16. //第一个人(第二行)
  17. $worksheet->write(1, 0, 'John Smith');
  18. $worksheet->write(1, 1, 30);
  19. //第二个人(第三行)
  20. $worksheet->write(2, 0, 'Johann Schmidt');
  21. $worksheet->write(2, 1, 31);
  22. //第三个人(第四行)
  23. $worksheet->write(3, 0, 'Juan Herrera');
  24. $worksheet->write(3, 1, 32);
  25. //关闭Workbook
  26. $workbook->close();
  27. ?>
复制代码
效果图:

PHP读取Excel 之 Spreadsheet_Excel_Reader和Writer_19623

当然,Spreadsheet_Excel_Writer的设置远远不止这些,详细介绍请参考:
http://pear.php.net/package/Spreadsheet_Excel_Writer/docs

和Spreadsheet_Excel_Writer类似,Spreadsheet_Excel_Reader是用来读取Excel内容的工具
可以方便的将Excel数据导入到数据或者其他用途。

如下代码:
  1. <?php
  2. //调用Reader
  3. require_once 'Spreadsheet/Excel/Reader/reader.php';
  4. //创建 Reader
  5. $data = new Spreadsheet_Excel_Reader();
  6. //设置文本输出编码
  7. $data->setOutputEncoding('GB2312');
  8. //读取Excel文件
  9. $data->read("c:\test.xls");
  10. //$data->sheets[0]['numRows']为Excel行数
  11. for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
  12.   //$data->sheets[0]['numCols']为Excel列数
  13.   for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
  14.   //显示每个单元格内容
  15.   echo $data->sheets[0]['cells'][$i][$j];
  16.   }
  17. }
  18. ?>
复制代码
另,由于日期型的特殊性,在取值时可能会产生错误,可将Excel单元格类型设为Text,将日期以文本形式读取,如需日期型字符再通过PHP对其进行处理即可(strtotime()结合date())。
原创粉丝点击