PHP 从mysql库里取出大量数据写入excel压缩下载

$zip = new ZipArchive;
if ($zip->open($filePath . date(‘Ymd‘) . ‘.zip‘,ZipArchive::OVERWRITE) === TRUE) {
  $count = $this->mod->getCount($cond);
  $num = ceil($count/5000);    //取整5000 余数进1
  $z = 0;
  for ($j=0;$j<$num;$j++) {
  $limit = $j*5000; //每次查询5000条
    $query = array(
    ‘pri‘ => ‘id‘,
    ‘fields‘ => ‘*‘,
    ‘cond‘ => $cond,
    ‘order_by‘ => ‘id‘,
    ‘limit‘ => "$limit,5000",
    );
    $result = $this->mod->getData($query);
    if ($result) {
      $i = 2;
      $objPHPExcel = new PHPExcel();
      $objPHPExcel->setActiveSheetIndex(0);
      $objPHPExcel->getProperties()->setCreator("Meteoric_cry")
      ->setLastModifiedBy("Meteoric002")
      ->setTitle("Php_excel_demo1");
      $objPHPExcel->getActiveSheet()->setTitle("Simple{}");
      $objPHPExcel->getActiveSheet()->setCellValue("A1", ‘标题‘);
      $objPHPExcel->getActiveSheet()->setCellValue("B1", ‘链接‘);
      $objPHPExcel->getActiveSheet()->setCellValue("C1", ‘内容‘);
      foreach($result as $key=> $val) {
        $objPHPExcel->getActiveSheet()->setCellValue("A{$i}", $val[‘title‘]);
        $objPHPExcel->getActiveSheet()->setCellValue("B{$i}", $val[‘url‘]);
        $objPHPExcel->getActiveSheet()->setCellValue("E{$i}", $val[‘content‘]);
        $i++;
        $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
      }
      //写操作
      $fileName = $key.".xlsx"; //文件名称
      $objWriter->save( $fileName); //保存文件
      $file_path = $fileName;
      if(file_exists($file_path)) { //判断文件是否存在此路径下
        $zip->addFile($file_path);
      }
    }
  }
}
$zip->close(); //关闭
//远程下载压缩包
$path = $filePath . date(‘Ymd‘) . ‘.zip‘;
$file = fopen($path,"r"); // 打开文件
// 输入文件标签
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($path));
Header("Content-Disposition: attachment; filename=" .date(‘Ymd‘) . ".zip");
// 输出文件内容
echo fread($file,filesize($path));
fclose($file); //关闭文件
unlink($path); //下载完之后删除压缩包

时间: 2024-10-31 10:37:32

PHP 从mysql库里取出大量数据写入excel压缩下载的相关文章

《程序实现》从xml、txt文件里读取数据写入excel表格

直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; impo

Nopi数据写入Excel

Nopi数据写入Excel 前几天,在落伍者的现金任务无意中结识一个哥们,他有这样一个需求.因为是搞小软件销售的,所以,其在一个盘符中存储有大量数据(主要是文件夹),大概有12000多个,时间长了,他想整理一下,就是将文件夹的名称写入一个文件里,文本文件或是xls最好是xls,于是我50大元接了这个小活,全当是玩了,呵呵.通过分析需求,其获取所有的文夹名称不是难点,写入xls可以通过NOP 实现.综合,通过一个Winform程序,顺利实现.程序运行如图: 代码如下: public partial

mongo 取随机100条数据写入Excel

Python 读取Mongo取随机100条数据写入Excel # 随机100人获取 关卡数.现金账户.金币账户 from models import UserDayStat, GameUser, UserInfo import xlwt book = xlwt.Workbook() def write_xls(data, sheet_name, excel_name, title_list): global book sheet = book.add_sheet(sheet_name) # 添加

list数据导出excel并且下载到本地

最近做grid列表相关数据导出到excel功能,根据自己选择的列导出成excel 并且下载到本地.下载位置根据配置文件进行的配置.废话不说 直接上关键代码: 需要引入相关的包: compile 'net.sourceforge.jexcelapi:jxl:2.6.12'这是我项目中gradle的配置. @Override public void exportExcel(Integer[] ids,HttpServletResponse response) { List<WithdrawDepos

python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL

#!/usr/bin/python# -*- coding: utf-8 -*-#!/usr/bin/env python import MySQLdbimport sysimport xlsxwriter reload(sys)sys.setdefaultencoding('utf-8') #创建一个EXCEL文件workbook = xlsxwriter.Workbook('name.xlsx')#EXCEL的文件名 #创建一个工作表对象 worksheet_1 = workbook.add

selenium配合phantomjs实现爬虫功能,并把抓取的数据写入excel

# -*- coding: UTF-8 -*- ''' Created on 2016年5月13日 @author: csxie ''' import datetime from Base import BasePage import ExcelOperation as excel from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions

修改 vuex $store.state 里取出的数据不响应

一定要先拷贝 let { showLabel, actualValue } = this.record; let show = this.rowData[showLabel]; let actual = this.rowData[actualValue]; const { formGroup } = this.$store.state.right; const { dispatch } = this.$store; let group = _.cloneDeep(formGroup) // 这一

用kettle从mysql中使用存储过程读取数据写入到sqlserver数据库

1.mysql存储过程,可以实现动态表读取,满足较为复杂的业务逻辑 DROP PROCEDURE if exists p_get_car_trace; delimiter // CREATE PROCEDURE p_get_car_trace() begin declare var_sql varchar(800); declare var_tabe_name varchar(50); set var_tabe_name = 'geom1'; set var_sql = concat_ws('

java web 读取数据库数据写入Excel返回浏览器下载

1 @RequestMapping(value = "/download", method = RequestMethod.GET) 2 public void downstudents(HttpServletRequest request, HttpServletResponse response) throws IOException { 3 // 一.从后台拿数据 4 List<Dept> list = null; 5 list=ds.list(); 6 try {