|
方法1:直接在js代码中使用window.open()打开php接口的url,即可将php生成的excel文件下载下来。
- $mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
- $sql = 'select * from country';
- $res = mysqli_query($mysqli, $sql);
- header("Content-type:application/vnd.ms-excel");
- header("Content-Disposition:filename=country.xls");
- echo "code\t";
- echo "name\t";
- echo "population\t\n";
- if(mysqli_num_rows($res) > 0) {
- while($row = mysqli_fetch_array($res)) {
- echo $row['code']."\t";
- echo $row['name']."\t";
- echo $row['population']."\t\n";
- }
- }
复制代码
- 方法2:php接口中先把生成的excel文件保存在服务器中,然后把文件路径返回给js,js再使用window.open()打开文件路径即可下载。
复制代码
- $mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
- $sql = 'select * from country';
- $res = mysqli_query($mysqli, $sql);
- $file = fopen('./country.xls', 'w');
- fwrite($file, "code\tname\tpopulation\t\n");
- if(mysqli_num_rows($res) > 0) {
- while($row = mysqli_fetch_array($res)) {
- fwrite($file, $row['code']."\t".$row['name']."\t".$row['population']."\t\n");//这里写得不好,应该把所有文件内容组装到一个字符串中然后一次性写入文件。
- }
- }
- fclose($file);
- echo 'http://www.jtw.com/....../country.xls';//这里返回文件路径给js
复制代码
如果有需要,还可以使用原生php对excel文件内容进行读取操作,这主要用于需要将excel文件中的数据导入到数据库中的情况。
- $path = './country.xls';
- $file = fopen($path, 'r');
- //标题行读取(第一行)
- $row = fgets($file);
- $row = explode("\t", $row);
- $title = array();
- foreach($row as $k => $v) {
- $title[$k] = str_replace("\n", '', $v);
- }
- //内容读取
- $data = array();
- $count = 0;
- while(!feof($file)) {
- $row = fgets($file);
- $row = explode("\t", $row);
- if(!$row[0]) continue;//去除最后一行
- foreach($title as $k => $v) {
- $data[$count][$title[$k]] = $row[$k];
- }
- $count ++;
- }
- fclose($file);
- echo '<pre>';
- print_r($data);
复制代码 |
|