日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php读取excel文件_php读取excel文件数据的导入和导出

發(fā)布時間:2023/12/31 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php读取excel文件_php读取excel文件数据的导入和导出 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在之前有寫過一篇文章講述了使用

image

今天使用一個第三方的SDK(PHPExcel)實現(xiàn)Excel文件的導(dǎo)入和導(dǎo)出。

2.將SDK解壓之后的Class文件拷貝到自己的項目。

一.Excel文件讀取

1. function excelToArray(){

2. require_once dirname(__FILE__) . '/Lib/Classes/PHPExcel/IOFactory.php';

4. //加載excel文件

5. $filename = dirname(__FILE__).'/result.xlsx';

6. $objPHPExcelReader = PHPExcel_IOFactory::load($filename);

8. $sheet = $objPHPExcelReader->getSheet(0); // 讀取第一個工作表(編號從 0 開始)

9. $highestRow = $sheet->getHighestRow(); // 取得總行數(shù)

10. $highestColumn = $sheet->getHighestColumn(); // 取得總列數(shù)

12. $arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

13. // 一次讀取一列

14. $res_arr = array();

15. for ($row = 2; $row <= $highestRow; $row++) {

16. $row_arr = array();

17. for ($column = 0; $arr[$column] != 'F'; $column++) {

18. $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();

19. $row_arr[] = $val;

20. }

22. $res_arr[] = $row_arr;

23. }

25. return $res_arr;

26. }

或者:

1. function excelToArray(){

2. require_once dirname(__FILE__) . '/Lib/Classes/PHPExcel/IOFactory.php';

4. //加載excel文件

5. $filename = dirname(__FILE__).'/result.xlsx';

6. $objPHPExcelReader = PHPExcel_IOFactory::load($filename);

8. $reader = $objPHPExcelReader->getWorksheetIterator();

9. //循環(huán)讀取sheet

10. foreach($reader as $sheet) {

11. //讀取表內(nèi)容

12. $content = $sheet->getRowIterator();

13. //逐行處理

14. $res_arr = array();

15. foreach($content as $key => $items) {

17. $rows = $items->getRowIndex(); //行

18. $columns = $items->getCellIterator(); //列

19. $row_arr = array();

20. //確定從哪一行開始讀取

21. if($rows < 2){

22. continue;

23. }

24. //逐列讀取

25. foreach($columns as $head => $cell) {

26. //獲取cell中數(shù)據(jù)

27. $data = $cell->getValue();

28. $row_arr[] = $data;

29. }

30. $res_arr[] = $row_arr;

31. }

33. }

35. return $res_arr;

36. }

兩種方法均可將表格數(shù)據(jù)轉(zhuǎn)化為數(shù)組,然后哦再進行相關(guān)的操作就簡單了。

二.Excel文件導(dǎo)出

1. /**

2. * 創(chuàng)建(導(dǎo)出)Excel數(shù)據(jù)表格

3. * @param array $list 要導(dǎo)出的數(shù)組格式的數(shù)據(jù)

4. * @param string $filename 導(dǎo)出的Excel表格數(shù)據(jù)表的文件名

5. * @param array $indexKey $list數(shù)組中與Excel表格表頭$header中每個項目對應(yīng)的字段的名字(key值)

6. * @param array $startRow 第一條數(shù)據(jù)在Excel表格中起始行

7. * @param [bool] $excel2007 是否生成Excel2007(.xlsx)以上兼容的數(shù)據(jù)表

8. * 比如: $indexKey與$list數(shù)組對應(yīng)關(guān)系如下:

9. * $indexKey = array('id','username','sex','age');

10. * $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));

11. */

12. function exportExcel($list,$filename,$indexKey,$startRow=1,$excel2007=false){

13. //文件引入

14. require_once APP_ROOT.'/Api/excel/PHPExcel.php';

15. require_once APP_ROOT.'/Api/excel/PHPExcel/Writer/Excel2007.php';

17. if(empty($filename)) $filename = time();

18. if( !is_array($indexKey)) return false;

20. $header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

21. //初始化PHPExcel()

22. $objPHPExcel = new PHPExcel();

24. //設(shè)置保存版本格式

25. if($excel2007){

26. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

27. $filename = $filename.'.xlsx';

28. }else{

29. $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

30. $filename = $filename.'.xls';

31. }

33. //接下來就是寫數(shù)據(jù)到表格里面去

34. $objActSheet = $objPHPExcel->getActiveSheet();

35. //$startRow = 1;

36. foreach ($list as $row) {

37. foreach ($indexKey as $key => $value){

38. //這里是設(shè)置單元格的內(nèi)容

39. $objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);

40. }

41. $startRow++;

42. }

44. // 下載這個表格,在瀏覽器輸出

45. header("Pragma: public");

46. header("Expires: 0");

47. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

48. header("Content-Type:application/force-download");

49. header("Content-Type:application/vnd.ms-execl");

50. header("Content-Type:application/octet-stream");

51. header("Content-Type:application/download");;

52. header('Content-Disposition:attachment;filename='.$filename.'');

53. header("Content-Transfer-Encoding:binary");

54. $objWriter->save('php://output');

55. }

導(dǎo)出文件,還可以設(shè)置模板

1. function exportExcel($list,$filename,$indexKey=array()){

2. require_once dirname(__FILE__) . '/Lib/Classes/PHPExcel/IOFactory.php';

3. require_once dirname(__FILE__) . '/Lib/Classes/PHPExcel.php';

4. require_once dirname(__FILE__) . '/Lib/Classes/PHPExcel/Writer/Excel2007.php';

6. $header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z');

8. //$objPHPExcel = new PHPExcel(); //初始化PHPExcel(),不使用模板

9. $template = dirname(__FILE__).'/template.xls'; //使用模板

10. $objPHPExcel = PHPExcel_IOFactory::load($template); //加載excel文件,設(shè)置模板

12. $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //設(shè)置保存版本格式

14. //接下來就是寫數(shù)據(jù)到表格里面去

15. $objActSheet = $objPHPExcel->getActiveSheet();

16. $objActSheet->setCellValue('A2', "活動名稱:江南極客");

17. $objActSheet->setCellValue('C2', "導(dǎo)出時間:".date('Y-m-d H:i:s'));

18. $i = 4;

19. foreach ($list as $row) {

20. foreach ($indexKey as $key => $value){

21. //這里是設(shè)置單元格的內(nèi)容

22. $objActSheet->setCellValue($header_arr[$key].$i,$row[$value]);

23. }

24. $i++;

25. }

27. // 1.保存至本地Excel表格

28. //$objWriter->save($filename.'.xls');

30. // 2.接下來當(dāng)然是下載這個表格了,在瀏覽器輸出就好了

31. header("Pragma: public");

32. header("Expires: 0");

33. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

34. header("Content-Type:application/force-download");

35. header("Content-Type:application/vnd.ms-execl");

36. header("Content-Type:application/octet-stream");

37. header("Content-Type:application/download");;

38. header('Content-Disposition:attachment;filename="'.$filename.'.xls"');

39. header("Content-Transfer-Encoding:binary");

40. $objWriter->save('php://output');

41. }

先弄一個excel模板

image

然后使用該模板導(dǎo)出數(shù)據(jù)

image

總結(jié)

以上是生活随笔為你收集整理的php读取excel文件_php读取excel文件数据的导入和导出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。