找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 2258|回复: 0

[原生PHP] 使用原生php读写excel文件

[复制链接]

431

主题

77

回帖

8

广播

论坛版主

积分
214
泰拉
0
水晶
10
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【宝剑回鞘】【泰拉达人】【奥运选手】

发表于 2020-3-24 09:44:49 | 显示全部楼层 |阅读模式
方法1:直接在js代码中使用window.open()打开php接口的url,即可将php生成的excel文件下载下来。

  1. $mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
  2. $sql = 'select * from country';
  3. $res = mysqli_query($mysqli, $sql);
  4. header("Content-type:application/vnd.ms-excel");
  5. header("Content-Disposition:filename=country.xls");
  6. echo "code\t";
  7. echo "name\t";
  8. echo "population\t\n";
  9. if(mysqli_num_rows($res) > 0) {
  10.     while($row = mysqli_fetch_array($res)) {
  11.         echo $row['code']."\t";
  12.         echo $row['name']."\t";
  13.         echo $row['population']."\t\n";
  14.     }
  15. }
复制代码

  1. 方法2:php接口中先把生成的excel文件保存在服务器中,然后把文件路径返回给js,js再使用window.open()打开文件路径即可下载。
复制代码

  1. $mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
  2. $sql = 'select * from country';
  3. $res = mysqli_query($mysqli, $sql);
  4. $file = fopen('./country.xls', 'w');
  5. fwrite($file, "code\tname\tpopulation\t\n");
  6. if(mysqli_num_rows($res) > 0) {
  7.     while($row = mysqli_fetch_array($res)) {
  8.         fwrite($file, $row['code']."\t".$row['name']."\t".$row['population']."\t\n");//这里写得不好,应该把所有文件内容组装到一个字符串中然后一次性写入文件。
  9.     }
  10. }
  11. fclose($file);
  12. echo 'http://www.jtw.com/....../country.xls';//这里返回文件路径给js
复制代码


如果有需要,还可以使用原生php对excel文件内容进行读取操作,这主要用于需要将excel文件中的数据导入到数据库中的情况。

  1. $path = './country.xls';
  2. $file = fopen($path, 'r');
  3. //标题行读取(第一行)
  4. $row = fgets($file);
  5. $row = explode("\t", $row);
  6. $title = array();
  7. foreach($row as $k => $v) {
  8.     $title[$k] = str_replace("\n", '', $v);
  9. }
  10. //内容读取
  11. $data = array();
  12. $count = 0;
  13. while(!feof($file)) {
  14.     $row = fgets($file);
  15.     $row = explode("\t", $row);
  16.     if(!$row[0]) continue;//去除最后一行
  17.     foreach($title as $k => $v) {
  18.         $data[$count][$title[$k]] = $row[$k];
  19.     }
  20.     $count ++;
  21. }
  22. fclose($file);
  23. echo '<pre>';
  24. print_r($data);
复制代码
[发帖际遇]: mickeyort 捡了钱没交公 泰拉 降了 7 . 幸运榜 / 衰神榜
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-11-23 15:59 , Processed in 0.116128 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表