精华内容
下载资源
问答
  • kettle循环导出数据到excel生成多个sheet

    千次阅读 多人点赞 2019-05-14 17:15:16
    kettle循环导出数据到excel生成多个sheet页 1.场景介绍: 根据不同的省份生成多个execl,每个execl中根据不同的年份生成不同的sheet页 2.案例适用范围: 循环job可参考,变量运用可参考,生成多个sheet页可参考 3....

    kettle循环导出数据到excel生成多个sheet页
    1.场景介绍:
    根据不同的省份生成多个execl,每个execl中根据不同的年份生成不同的sheet页
    2.案例适用范围:
    循环job可参考,变量运用可参考,生成多个sheet页可参考,kettle循环套循环可参考
    3.整个job设置如下设计:
    sj_sjzc_job中包含sj_provice转换和sj_sheet_job作业如下:
    在这里插入图片描述
    其中循环job的关键设置 如下:
    a.Adwanced中如图两个勾需勾上
    在这里插入图片描述
    b.Parameters中两个变量需添加如图所示:
    在这里插入图片描述
    4.获取省份编码和省份名称转换如下设计:
    在这里插入图片描述
    温馨提示:这里获取省份编码和省份名称采用的是从地区维度表中按省份编码和省份名称汇总得到,如果为了简单可以直接在网上搜索全国省份易可。(我这里有地区维度表就直接取了)
    数据如下:
    在这里插入图片描述
    5.excel循环生成多个sheet页如下设计:
    在这里插入图片描述
    其中sheet页循环trans的设置和省份循环设置类似(a.Adwanced中如图两个勾需勾上 b.Parameters中两个变量需添加):

    6.获取sheet页名称(和获取省份类似)设计如下:
    在这里插入图片描述
    7.获取sheet数据和execl名称如下设计:
    在这里插入图片描述
    8.跑job查看结果:
    运行中日志:
    在这里插入图片描述
    运行结束日志:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

    在这里插入图片描述
    如内容有错欢迎大家指正!!!
    资源下载链接:kettle循环导出数据到excel生成多个sheet页
    更多ketlle视频资料下载地址:kettle视频资料
    读后有收获可以支付宝请作者喝咖啡
    在这里插入图片描述
    读后有疑问请加QQ群来聊一聊 kettle那些事!
    在这里插入图片描述

    展开全文
  • kettle循环导出数据到excel生成多个sheet页https://blog.csdn.net/weixin_43398232/article/details/90210815?from=singlemessage&isappinstalled=0 kettle根据自增id做增量加载 ...

    kettle循环导出数据到excel生成多个sheet页https://blog.csdn.net/weixin_43398232/article/details/90210815?from=singlemessage&isappinstalled=0
    kettle根据自增id做增量加载
    https://blog.csdn.net/weixin_43398232/article/details/93052751
    windows和linux环境定时调kettle资源库中的job
    https://blog.csdn.net/weixin_43398232/article/details/90517216

    展开全文
  • 1.2 使用 同一 workbook 示例代码如下: @ApiOperation("buttonDownload") @LogApi("button and download") @PostMapping("/button/download") public void buttonDownload(@RequestBody ValidateQuery query,...

    1. 要点

    1.1 outPutStream 最后才能close

    1.2 使用同一个 workbook

    示例代码如下:

        @ApiOperation("buttonDownload")
        @LogApi("button and download")
        @PostMapping("/button/download")
        public void buttonDownload(@RequestBody ValidateQuery query, HttpServletResponse response) throws IOException {
    
            String dateStr = DateUtils.format(new Date(), DateUtils.PATTERN_MM_DD_YYYY_HH_MM_SS);
            String fileName = "PSS Validation_" + dateStr;
    
            // 设置下载文件格式
            response.addHeader( "Content-Type", "application/octet-stream");
            response.addHeader( "Content-Disposition", "attachment; filename=\"" + fileName + "\".xlsx;filename*=utf-8''" + fileName);
    
            Workbook workbook = new XSSFWorkbook();
            query.setWorkbook(workbook);
    
    
            List<String> names = query.getValidationName();
    
            try (OutputStream out = response.getOutputStream()) {
    
                for (int i = 0; i < names.size(); i++) {
                    String o = names.get(i);
    
                    query.setCurrentName(o);
                    query.setIndex(i);
    
                    if (ValidationConstant.DOS_ARR.contains(o)) {
                        dosService.pssValidationDownload(query, response);
                    }
    
                    if (ValidationConstant.VALIDATION_ARR.contains(o)) {
                        validationService.pssValidationDownload(query, response);
                    }
                }
    
    
                query.getWorkbook().write(out);
            }
        }
    

    1.3 每个sheet 设置一个index和name

        /**
         * 一个 excel 文件,同时 生成多个sheet;
         * 解析动态表头,使用此方法
         *
         * @param query     sheet 属性 封装
         * @param response  响应
         * @param excelHead 表头
         * @param excelData 数据
         * @author: leiming5
         */
        public void download(ValidateQuery query, HttpServletResponse response, List<List<String>> excelHead, List<List<Object>> excelData) {
    
            String sheetName = query.getCurrentName();
            String header = response.getHeader("content-disposition");
    
            if (StringUtils.isEmpty(header)) {
                String dateStr = DateUtils.format(new Date(), DateUtils.PATTERN_MM_DD_YYYY_HH_MM_SS);
                response.setHeader("content-disposition", "attachment;filename=" + sheetName + "_" + dateStr + ".xlsx");
            }
    
            try {
                Workbook workbook = query.getWorkbook();
                if (workbook == null) {
                    workbook = new XSSFWorkbook();
                }
    
                // 生成一个表格
                Sheet sheet = workbook.createSheet(sheetName);
    
                // 生成表格
                createExcel(sheet, excelHead, excelData, workbook, sheetName);
    
                // 设置多sheet表格名称
                Integer index = query.getIndex();
                if (index != null) {
                    workbook.setSheetName(index, sheetName);
                }
    
                if (StringUtils.isEmpty(header)) {
                    OutputStream out = response.getOutputStream();
                    workbook.write(out);
                    out.close();
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    展开全文
  • java导出excel生成多个sheet

    千次阅读 2019-02-13 09:22:39
    * @param sheetNum (sheet的位置,0表示第一个表格中的第一个sheet) * @param sheetTitle (sheet的名称) * @param headers (表格的标题) * @param result (表格的数据) * @param out (输出流) * @...

    try {
    OutputStream out = new FileOutputStream(“E:\test.xls”);//导出本地
    //OutputStream out = response.getOutputStream();//输出客户端
    List<List> data1 = new ArrayList<List>();
    List<List> data2 = new ArrayList<List>();
    List<List> data3 = new ArrayList<List>();
    for (int i = 1; i < 5; i++) {
    List rowData = new ArrayList();
    rowData.add(String.valueOf(i));
    rowData.add(“上海东霖柏鸿”);
    data1.add(rowData);
    }
    for (int i = 1; i < 5; i++) {
    List rowData = new ArrayList();
    rowData.add(String.valueOf(i));
    rowData.add(“深圳东霖柏鸿”);
    data2.add(rowData);
    }
    for (int i = 1; i < 5; i++) {
    List rowData = new ArrayList();
    rowData.add(String.valueOf(i));
    rowData.add(“广州东霖柏鸿”);
    data3.add(rowData);
    }
    String[] headers = { “ID”, “用户名” };
    ExportExcelUtils eeu = new ExportExcelUtils();
    HSSFWorkbook workbook = new HSSFWorkbook();
    eeu.exportExcel(workbook, 0, “上海”, headers, data1, out);
    eeu.exportExcel(workbook, 1, “深圳”, headers, data2, out);
    eeu.exportExcel(workbook, 2, “广州”, headers, data3, out);
    //原理就是将所有的数据一起写入,然后再关闭输入流。
    workbook.write(out);
    out.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    public class ExportExcelUtils {

    /**
     * @Title: exportExcel
     * @Description: 导出Excel的方法
     * @author: liuct @ 2019-01-29 
     * @param workbook 
     * @param sheetNum (sheet的位置,0表示第一个表格中的第一个sheet)
     * @param sheetTitle  (sheet的名称)
     * @param headers    (表格的标题)
     * @param result   (表格的数据)
     * @param out  (输出流)
     * @throws Exception
     */
    public void exportExcel(HSSFWorkbook workbook, int sheetNum,
    		String sheetTitle, String[] headers, List<List<String>> result,
    		OutputStream out) throws Exception {
    	// 生成一个表格
    	HSSFSheet sheet = workbook.createSheet();
    	workbook.setSheetName(sheetNum, sheetTitle);
    	// 设置表格默认列宽度为20个字节
    	sheet.setDefaultColumnWidth((short) 20);
    	// 生成一个样式
    	HSSFCellStyle style = workbook.createCellStyle();
    	// 设置这些样式
    	style.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
    
    	style.setFillBackgroundColor(HSSFColor.WHITE.index);
    	style.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);
    
    	// 生成一个字体
    	HSSFFont font = workbook.createFont();
    	font.setColor(HSSFColor.BLACK.index);
    	font.setFontHeightInPoints((short) 12);
    	// 把字体应用到当前的样式
    	style.setFont(font);
    
    	// 指定当单元格内容显示不下时自动换行
    	style.setWrapText(true);
    
    	// 产生表格标题行
    	HSSFRow row = sheet.createRow(0);
    	for (int i = 0; i < headers.length; i++) {
    		HSSFCell cell = row.createCell((short) i);
    	
    		cell.setCellStyle(style);
    		HSSFRichTextString text = new HSSFRichTextString(headers[i]);
    		cell.setCellValue(text.toString());
    	}
    	// 遍历集合数据,产生数据行
    	if (result != null) {
    		int index = 1;
    		for (List<String> m : result) {
    			row = sheet.createRow(index);
    			int cellIndex = 0;
    			for (String str : m) {
    				HSSFCell cell = row.createCell((short) cellIndex);
    				cell.setCellValue(str.toString());
    				cellIndex++;
    			}
    			index++;
    		}
    	}
    }
    

    }

    展开全文
  • NPOI大数据量多个sheet导出 /// /// 大数据量多个sheet导出 /// /// 数据源实体类 /// 数据源 /// 文件名称 /// 导出数据流 /// 显示列对应数据字典 /// ...
  • excel生成多个sheet .net

    2012-09-03 10:38:59
    Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.Application(); //生成个excel对象  Microsoft.Office.Interop.Excel.Workbook workbook = myExcel.Workbooks.A
  • } } } public void exportExcel(HSSFWorkbook workbook, int sheetNum, String sheetTitle,EXCELVO excelVO) throws Exception { // 生成表格 HSSFSheet sheet = workbook.createSheet(); workbook....
  • 此方法可以生成excel,可以控制每个sheet生成的数量。 此方法需要的dll 可以用vs2017 工具=》NuGet包管理器=》第二个 进行添加,添加的有Quartz,NPOI
  • 一段用以在导出操作时生成多个sheet页的代码。 1.controller /** * 导出方法 **/ @ApiOperation(value = "盘点—导出", notes = "盘点—导出") @ResponseBody @GetMapping(value = "/export", produces = ...
  • import pandas as pd 直接生成Excel df.to_excel(filename) 生成的同时修改sheet名称 df.to_excel(filename,...多个dataframe写入一个文件 with pd.ExcelWriter('stocks.xlsx') as writer: df1.to_excel(writer,...
  • java生成excel文件多个sheet
  • java读取Excel表中的内容,可以读取多个sheet生成自定义格式的xml文件
  • excel 将一个sheet分割成多个sheet,并生成目录
  • 导出数据到EXCEL生成多个Sheet

    千次阅读 2015-11-19 10:50:00
    一、准备工作 引用:Microsoft.Office.Interop....准备多个DataTable数据添加到DataSet中。 二、代码 public void CreateExcel(DataSet ds, string filePath) { //创建excel运行环境 Microsoft.Office...
  • 本文主要介绍了Java根据模板导出Excel报表并复制模板生成多个Sheet页的方法,具有很好的参考价值。下面跟着小编一起来看下吧
  • 之前经常会碰到一个excel多个sheet文件的情况,当数据少的时候,我们可以把多个sheet文件合成一个xlxs格式的excel,但是当数据很大的时候,我们可以合成一个csv格式的文件,也便于操作。如图所示,我们可以看到有4...
  • 需求 根据姓名自动生成以姓名命名的sheet页 第一步 准备好测试数据 第二步 选中要生成sheet页的数据,点击插入——数据透视表——确定 ... ...接下来就能看到excel会根据选定数据自动生成多个sheet ...
  • java生成一个excel中有多个sheet 生成excel时,对象SXSSFWorkbook中一个sheet存放的数据行数是有限制的,应该是一个sheet存放一百多万条数据。当数据超过这个限制就要考虑新建一个sheet存放剩下的数据。依次类推,再...
  • 下面写一下,关于通过excel模板生成之后,生成多个sheet; 代码如下:(只写关键代码) FileOutputStream fileOut = new FileOutputStream("D:\\excel.xls"); HSSFWorkbook workbook = null; InputStream fis...
  • public File export(ExportMapping mapping,String sql,String path)throws Exception{ ... File excel=this.createFile(path, mapping); WritableWorkbook workbook = Workbook.createWorkbook(excel);

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 357
精华内容 142
关键字:

excel生成多个sheet