• groovy : poi 导出 Excel xlsx


    參考 file:///poi-3.10-FINAL/docs/spreadsheet/how-to.html#sxssf

    text2xlsx.groovy 代码例如以下

    package xlsx;
    import javax.swing.JFileChooser
    import javax.swing.filechooser.FileFilter
    import javax.swing.filechooser.FileNameExtensionFilter
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.math.BigDecimal;
    import java.util.List;
    
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.util.CellReference;
    import org.apache.poi.xssf.streaming.SXSSFWorkbook;
    
    class Text2xlsx {
    		
    	private static String getFilename(String initDir) {
    		if (initDir==null || initDir=='') initDir='.';
    		def chooser=new JFileChooser(initDir)
    		def filter = new FileNameExtensionFilter('Text', 'txt')
    		chooser.setFileFilter(filter)
    		chooser.setDialogTitle("Open")
    		if(chooser.showSaveDialog() == JFileChooser.APPROVE_OPTION)
    			return chooser.getSelectedFile()
    		else if(chooser.showSaveDialog() == JFileChooser.CANCEL_OPTION)
    			return null
    		else
    			return null
    	}
    
    	void write_xlsx(String filename) {
    		if (filename==null || filename=='') return;
    		def idx = filename.lastIndexOf('.');
    		def fname = filename.substring(0,idx);
    		def file2 = fname +".xlsx" as String;
    		def shname = fname.tokenize('\')[-1] as String;
    		println "${file2} , ${shname}"
    
    		// 创建新的Excel 工作簿
    		SXSSFWorkbook workbook = new SXSSFWorkbook(100);   
    		Sheet sheet = workbook.createSheet(shname);
    
    		int n=0;
    		int i=0; // rowIndex
    		int j=0;
    		def alist =[]
    		new File(filename).eachLine{ line ->
    			alist = line.split(/,/);
    			n = alist.size();  
    			if (n >1){
    				Row row = sheet.createRow(i); // 创建新行(row)
    				for(j=0; j<n; j++){
    					row.createCell(j).setCellValue((String)alist[j]); // 创建单元格
    						
    				}
    				i ++ ;
    			}
    		}
    		// 创建文件输出流。输出电子表格
    		try {
    			def fout = new FileOutputStream(new File(file2));
    			workbook.write(fout);
    			fout.close();
    			workbook.dispose();
    		} catch(e){
    			println e;
    		}
    	}
    
    	static void main(args) {
    		def filename =null;		
    		if (args.size()==1)
    			filename = getFilename(args[0]);
    		else
    			filename = getFilename('.');
    		if (filename==null) return;
    		def app = new Text2xlsx();
    		app.write_xlsx(filename);
    	}
    }
    


  • 相关阅读:
    git学习,git上建立自己的项目
    springframework3.2源码下载导入eclipse
    git学习
    java事件处理机制(自定义事件)
    quartz scheduler 2.16 之集群
    博客总目录(2007.11.12 2010.4.25)
    JS中json数据的处理
    (转载)JAVA线程池管理
    查到的一些发送邮件代码的链接
    layui时间控件,获取页面选中的时间值。
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6977776.html
Copyright © 2020-2023  润新知