精华内容
下载资源
问答
  • struts2+poi导出excel表格完整例子

    热门讨论 2013-04-14 02:41:14
    自己的一个完整导出功能,struts2+poi导出excel 经过自己严格测试通过的。
  • 一个简洁的类似Excel表格冻结的例子 可以实现表头冻结效果 使用CSS实现,是一个网页,直接打开就可以看到效果。如果要引用到其他项目,查看源代码相应的修改即可
  • 说白了,就是查出数据然后塞到Excel中就OK了,感觉没什么理论要说,下面以我例子来说一下。我用的项目后台分为两块,一个前台controller,一个后台controller,我这里的处理是web端条件传给前台controller,这些...

        说白了,就是查出数据然后塞到Excel中就OK了,感觉没什么理论要说,下面以我做的例子来说一下。我用的项目后台分为两块,一个前台controller,一个后台controller,我这里的处理是web端条件传给前台controller,这些条件传给后台controller,后台连接数据库进行查询,之后把数据封装进map返回给前台controller,前台负责把它塞到Excel中。如果各位只有一个controller,也是一样,就是少了一层而已。

        web代码,没什么好说的,导出的按钮事件中直接写这两句就好:

        var url = encodeURI(encodeURI(后台接口地址));

        window.location.href = url;

        数据的查询以及两个服务器之间的传递也是so easy,我就直接从取得数据后开始说了:

        我是新建了一个工具类ViewExcel,数据都传进这个类里进行处理   

        controller中的接口

        @RequestMapping(value = "/ledgerExport.do")
        @ResponseBody
        public ModelAndView ledgerExport(String conditionJson) {
            String tablename=request.getParameter("tablename");
            String projectId=request.getParameter("projectId");
            String groupId=request.getParameter("groupId");
            String startDate = request.getParameter("startDate")==null?"":request.getParameter("startDate");
            String endDate = request.getParameter("endDate")==null?"":request.getParameter("endDate");
            //后台查询出list之后封装到map里,再装到json里传过来
            String result = HttpTookit.doGet(Constants.DOMAIN+"blog/ledgerExport.do?tablename="+tablename+"&projectId="+projectId+"&groupId="+groupId+"&startDate="+startDate+"&endDate="+endDate,"","");
            //转化成map
            Map<String, Object> map = (Map<String, Object>)JSON.parse(result);
            
            return new ModelAndView(new ViewExcel(), map);
        }

        前面都是数据的获取和传递,倒数第二句是直接把数据装到map中,因为本来的返回值就是map所以直接用就好了。

        下面是工具类的代码,删除了很多样式之后的样子:

    package cn.rails.pms.core.controller.system;

    import java.beans.PropertyDescriptor;
    import java.io.OutputStream;
    import java.lang.reflect.Method;
    import java.math.BigDecimal;
    import java.net.URLDecoder;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFDataFormat;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.CellStyle;
    import org.springframework.web.servlet.view.document.AbstractExcelView;

    import com.alibaba.fastjson.JSONArray;



    public class ViewExcel extends AbstractExcelView{
        @SuppressWarnings({ "unchecked", "deprecation" })
        @Override
        protected void buildExcelDocument(Map<String, Object> model,
                HSSFWorkbook workbook, HttpServletRequest request,
                HttpServletResponse response) throws Exception {
            // TODO Auto-generated method stub

            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String fileName = "台账信息导出" + df.format(new Date()) + ".xls";//文件名

            response.setCharacterEncoding("UTF-8");//编码
            response.setContentType("application/ms-excel");
            response.setHeader("Content-Disposition", "inline; filename="
                    + new String(fileName.getBytes(), "iso8859-1"));
            OutputStream outputStream = response.getOutputStream();
            
            //设置字体样式
            HSSFFont font = workbook.createFont();
            font.setFontName("黑体");
            font.setFontHeightInPoints((short) 12);//设置字体大小
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
            
            //标题单元格样式,暂时只有居中这一个属性
            HSSFCellStyle cellStyleTitle = workbook.createCellStyle();
            cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//横向居中
            cellStyleTitle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//纵向居中
            cellStyleTitle.setFont(font);//应用上面设置的字体样式


            
            //设备报验台账
            List sbby = (List) model.get("sbby");
            if(sbby!=null){
                // 产生Excel表头
                String sheetName = "设备报验台账";
                HSSFSheet sheet = workbook.createSheet(sheetName);
                /*sheet.setColumnWidth(0, 6000);  
                sheet.setColumnWidth(1, 6000);
                sheet.setColumnWidth(2, 6000);
                sheet.setColumnWidth(3, 6000);
                sheet.setColumnWidth(4, 6000);*/

                
                
                HSSFRow header = sheet.createRow(0);
                //设置标题列行高
                header.setHeight((short) 500);
                // 产生标题列
                String[] headers = { "设备名称", "规格型号", "生产厂家", "验收结论", "使用场区"};
                for (int i = 0; i < headers.length; i++) {
                    HSSFCell cell = header.createCell(i);
                    cell.setCellValue(headers[i]);
                    cell.setCellStyle(cellStyleTitle);
                    //设置列宽
                    sheet.setColumnWidth(i, 6000);//这里是借用这个i而已,作用等同于上面的注释部分
                }

                int rowNumber = 1;
                if(sbby.size()>0){
                    for (int x=0; x<sbby.size(); x++) {
                        HSSFRow row = sheet.createRow(rowNumber++);
                        JSONArray cells = (JSONArray) sbby.get(x);
                        for (int y=0; y < cells.size(); y++) {
                            Object value = cells.get(y);
                            HSSFCell cell = row.createCell(y);
                            if (value == null) {

                            } else {
                                if(value instanceof Integer){
                                    cell.setCellValue((Integer)value);
                                }else if(value instanceof Date){
                                    cell.setCellValue((Double)value);
                                }else if(value instanceof Date){
                                    SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd");
                                    cell.setCellValue( dateFm.format(value));
                                }else if(value instanceof String){
                                    cell.setCellValue((String)value);
                                }
                            }
                            //把Excel中的单元格都设置为文本格式
                            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                        }
                    }
                }
            }
            workbook.write(outputStream);
            outputStream.flush();
            outputStream.close();
        }

    }


        因为实在是太简单了,都不知道怎么展开说,实在是个简单的不能再简单的例子,

        1.先建一个工作簿,也就是excel文件    HSSFWorkbook workbook

        2.在这个工作簿中建一个sheet页    HSSFSheet sheet = workbook.createSheet("sheet页名称");

        3.建一个标题行    HSSFRow header = sheet.createRow(0);    

        4.在这一行建立单元格     HSSFCell cell = header.createCell(i);

        5.单元格赋值和设置样式    cell.setCellValue(headers[i]);    cell.setCellStyle(cellStyleTitle);    

        6.注意这里的样式不是直接设置的,而是在之前设置好一个样式,然后把它赋给单元格

        HSSFCellStyle cellStyleTitle = workbook.createCellStyle();

        7.循环建立行,往里面插入查询到的列表的数据    HSSFRow row = sheet.createRow(rowNumber++);

        8.循环行的数据赋值也是一样的

        9.然后就是固定的导出文件操作

            workbook.write(outputStream);
            outputStream.flush();
            outputStream.close();

        10.一个最最简单的导出就完成了!

        其实java中的很多东西都可以通过点点出来,也就是Alt+/,之后看看这些属性的名字也能知道个大概功能,设置样式什么的,比如文字水平居中,垂直居中,边框,还有字体的颜色,大小,下划线,加粗,倾斜什么的,都不是什么麻烦事,真正麻烦的只有刚开始接触,无处下口的感觉,希望这篇文章能帮助到大家。







    展开全文
  • 将table数据转为Excel表格

    千次阅读 2018-04-09 23:02:18
    将table数据转为Excel表格放到前端来可以减少服务器的压力,而且不受网速影响,速度响应快。 下面是两个例子: 原生js实现table数据转为Excel表格 jquery.table2excel.js实现table数据转为Excel表格 原生js的...

    将table数据转为Excel表格放到前端来做可以减少服务器的压力,而且不受网速影响,速度响应快。

    下面是两个例子:

    1. 原生js实现table数据转为Excel表格
    2. jquery.table2excel.js实现table数据转为Excel表格

    原生js的主要函数如下:

    function getExplorer() {
        var explorer = window.navigator.userAgent;
        //ie  
        if (explorer.indexOf("MSIE") >= 0) {
            return 'ie';
        }
        //firefox  
        else if (explorer.indexOf("Firefox") >= 0) {
            return 'Firefox';
        }
        //Chrome  
        else if (explorer.indexOf("Chrome") >= 0) {
            return 'Chrome';
        }
        //Opera  
        else if (explorer.indexOf("Opera") >= 0) {
            return 'Opera';
        }
        //Safari  
        else if (explorer.indexOf("Safari") >= 0) {
            return 'Safari';
        }
    }
    
    function method(tableid) {
        var fileName = document.getElementById("fileName").value.replace(/\s/g, "");
        if (getExplorer() == 'ie') {
            // 一种方法,但是没办法修改文件名
            // var curTbl = document.getElementById(tableid);
            // var oXL = new ActiveXObject("Excel.Application");
            // var oWB = oXL.Workbooks.Add();
            // var oSheet = oWB.ActiveSheet;
            // var Lenr = curTbl.rows.length;
            // for (i = 0; i < Lenr; i++) {
            //     var Lenc = curTbl.rows(i).cells.length;
            //     for (j = 0; j < Lenc; j++) {
            //         oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;
            //     }
            // }
            // oXL.Visible = true;
    
    
            // 第二种方法,可命名文件名
            try {
                var winname = window.open('', '_blank', 'top=10000');
                var strHTML = document.getElementById(tableid).innerHTML;
    
                winname.document.open('application/vnd.ms-excel', 'export excel');
                winname.document.writeln(strHTML);
                winname.document.execCommand('saveas', '', fileName + '.xls');
                winname.close();
            } catch (e) {
                alert(e.description);
            }
    
        } else {
            tableToExcel(tableid, fileName);
        }
    }
    var tableToExcel = (function () {
        var uri = 'data:application/vnd.ms-excel;base64,',
            template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
            base64 = function (s) {
                return window.btoa(unescape(encodeURIComponent(s)));
            },
            format = function (s, c) {
                return s.replace(/{(\w+)}/g,
                    function (m, p) {
                        return c[p];
                    })
            };
        return function (table, fileName) {
            if (!table.nodeType) {
                table = document.getElementById(table);
            }
            var dlink = document.getElementById("dlink");
            var ctx = {
                worksheet: fileName ? fileName : 'Worksheet',
                table: table.innerHTML
            }
            dlink.href = uri + base64(format(template, ctx));
            dlink.download = fileName + ".xls";
            dlink.click();
        }
    })()

    使用jquery.table2excel.js的方式为:

    $("#btnExport").click(function () {
            $("#tableExcel").table2excel({
                exclude: ".noExl", //过滤位置的 css 类名  
                filename: $.trim($("#fileName").val()) + ".xls", //文件名称  
                name: "Excel Document Name.xlsx",
                exclude_img: true,
                exclude_links: true,
                exclude_inputs: true
    
            });
        });

    关于jquery.table2excel.js还可前去其github查看。

    展开全文
  • 在工作中,遇到了使用python生成Excel表格的需求,经过资料的查找与对比,决定使用第三方库xlwt来生成Excel表格,现如下总结:简单例子: import xlwt wb = xlwt.Workbook(encoding = 'ascii') #创建实例,并且...
        

    在工作中,遇到了使用python生成Excel表格的需求,经过资料的查找与对比,决定使用第三方库xlwt来生成Excel表格,现做如下总结:
    简单例子:

    import xlwt
    wb = xlwt.Workbook(encoding = 'ascii')    #创建实例,并且规定编码
    ws = wb.add_sheet('My Worksheet')         #设置工作表名称
    ws.write(0,0,'first')                    #向表格中插入字符串,前两位数字分别为行和列,第三个参数为要插入的内容,第四个参数可以设置样式
    wb.save('test.xls')                       #将生成的表格保存为

    单元格样式控制:

    def set_style(name, height, bold=False, back=False):    #样式控制函数
        style = xlwt.XFStyle()                              # 初始化样式
        font = xlwt.Font()                                  # 为样式创建字体
        font.name = name                                    # 字体由函数传入
        font.bold = bold
        font.color_index = 4
        font.height = height
        style.font = font
        borders = xlwt.Borders()                            # 设置边框
        borders.left = xlwt.Borders.THIN                    # 可选: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
        borders.right = xlwt.Borders.THIN
        borders.top = xlwt.Borders.THIN
        borders.bottom = xlwt.Borders.THIN
        style.borders = borders
        if back:
            patterni = xlwt.Pattern()                       # 为样式创建图案
            patterni.pattern = 2                            # 设置底纹的图案索引,1为实心,2为50%灰色,对应为excel文件单元格格式中填充中的图案样式
            patterni.pattern_fore_colour = 0x16             # 设置底纹的前景色,对应为excel文件单元格格式中填充中的背景色
            patterni.pattern_back_colour = 0x16             # 设置底纹的背景色,对应为excel文件单元格格式中填充中的图案颜色
            style.pattern = patterni                        # 为样式设置图案
        return style

    背景色对照:

    _colour_map_text = """\
    aqua 0x31
    black 0x08
    blue 0x0C
    blue_gray 0x36
    bright_green 0x0B
    brown 0x3C
    coral 0x1D
    cyan_ega 0x0F
    dark_blue 0x12
    dark_blue_ega 0x12
    dark_green 0x3A
    dark_green_ega 0x11
    dark_purple 0x1C
    dark_red 0x10
    dark_red_ega 0x10
    dark_teal 0x38
    dark_yellow 0x13
    gold 0x33
    gray_ega 0x17
    gray25 0x16
    gray40 0x37
    gray50 0x17
    gray80 0x3F
    green 0x11
    ice_blue 0x1F
    indigo 0x3E
    ivory 0x1A
    lavender 0x2E
    light_blue 0x30
    light_green 0x2A
    light_orange 0x34
    light_turquoise 0x29
    light_yellow 0x2B
    lime 0x32
    magenta_ega 0x0E
    ocean_blue 0x1E
    olive_ega 0x13
    olive_green 0x3B
    orange 0x35
    pale_blue 0x2C
    periwinkle 0x18
    pink 0x0E
    plum 0x3D
    purple_ega 0x14
    red 0x0A
    rose 0x2D
    sea_green 0x39
    silver_ega 0x16
    sky_blue 0x28
    tan 0x2F
    teal 0x15
    teal_ega 0x15
    turquoise 0x0F
    violet 0x14
    white 0x09
    yellow 0x0D"""
    展开全文
  • excel表格分割成多个

    千次阅读 2018-07-28 16:08:24
    poi拆分excel表格 最近一个excel数据导入功能,excel文件有几万的行,需要将其拆分成若干个文件,一下是工具类: 准备工作,需要记录一下用来分割的文件XXX.xls文件的位置,本例子的文件是放在项目的resources/...

    poi拆分excel表格

    最近做一个excel数据导入功能,excel文件有几万行,所涉及到的接口承载不了庞大的数据,需要将其拆分成若干个文件。
    准备工作,需要记录一下用来分割的文件XXX.xls文件的位置,本例子的文件是放在项目的resources/export文件夹下
    这里写图片描述

    工具类SplitExcelUtil:

    import java.io.File;   
    import java.io.FileNotFoundException;   
    import java.io.FileOutputStream;   
    import java.io.IOException;   
    import java.io.InputStream;   
    import java.io.FileInputStream;   
    import java.util.HashMap;   
    import java.util.Iterator;   
    import java.util.Map;
    import org.apache.commons.logging.impl.ServletContextCleaner;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFDataFormat;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;   
    import org.apache.poi.ss.usermodel.DateUtil;   
    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.usermodel.WorkbookFactory;   
    
    /**
     * @FileName SplitExcelUtil.java
     * @Description: 分割文件excel工具类,将excel分割成多个
     * @Date 2018年7月27日 上午10:34:30
     * @version 1.0
     */
    public class SplitExcelUtil {   
    
        /**
         * @Title: splitExcels 
         * @Description:切割Excel文件方法
         * @param filePath
         * @return 
         * @date 2018年7月27日 下午2:27:57
         */
        public static String splitExcels(String filePath,int FileMaxNum){
            //拆分文件存储路径
            String splitPath=SplitExcelUtil.class.getResource("/").getPath()+"export/deviceSplitExcel/";
            try {
                //前期工作:清空分割存储文件夹
                File[] splitFiles=new File(SplitExcelUtil.class.getResource("/").getPath()+"export/deviceSplitExcel/").listFiles();;
                if(null!=splitFiles){
                    for(File f2: splitFiles){
                        f2.delete();
                    }
                }
                //获取分割原文件
                File file = new File(SplitExcelUtil.class.getResource("/").getPath()+filePath);
                File[] files = file.listFiles();
                for (File f : files) {
                    Map<String, HSSFWorkbook> map=getSplitMap(f.getAbsolutePath(),FileMaxNum);//得到拆分后的子文件存储对象  
                    createSplitHSSFWorkbook(map, splitPath, f.getName());//遍历对象生成的拆分文件   
                    System.out.println("文件已被拆分为"+map.size()+"个文件.");   
                }
            } catch (Exception e) {   
                e.printStackTrace();   
            }   
            return splitPath;
        }
    
        /**
         * @Title: getSplitMap 
         * @Description:将第一列的值作为键值,将一个文件拆分为多个文件   
         * @param fileName
         * @param FileMaxNum
         * @return
         * @throws Exception 
         * @date 2018年7月27日 下午2:29:30
         */
        public static Map<String,HSSFWorkbook> getSplitMap(String fileName,int FileMaxNum) throws Exception{   
    
            Map<String,HSSFWorkbook> map=new HashMap<String,HSSFWorkbook>();        
            InputStream is = new FileInputStream(new File(fileName));   
            //根据输入流创建Workbook对象   
            Workbook wb = WorkbookFactory.create(is);   
            //get到Sheet对象   
            Sheet sheet = wb.getSheetAt(0); 
            //获取文件行数
            int MaxNum=sheet.getLastRowNum();
            //文件限定行数
            if(FileMaxNum<=0){
                FileMaxNum=2000;//每个文件默认2000条数据
            }
            //FileMaxNum=10;//用于测试
            //分割文件数量
            int fileNum=MaxNum/FileMaxNum;
            Row titleRow=null;   
            //这个必须用接口   
            int i=0;  
    
            for(Row row : sheet){//遍历每一行
                int currentFile=1;
                int currentRowNum=row.getRowNum();
                for (int k=0;k<fileNum;k++) {
                    if((currentRowNum>=k*FileMaxNum)&&(currentRowNum<(k+1)*FileMaxNum)){
                        currentFile=k+1;
                    }
                }
               if(i==0){   
                    titleRow=row;//得到标题行   
               }else{   
                    Cell keyCell=row.getCell(0);   
                    if(keyCell!=null){
                        row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
                    }
                    String key=String.valueOf(currentFile); 
                    HSSFWorkbook tempWorkbook=map.get(key); 
                    if(tempWorkbook==null){//如果以当前行第一列值作为键值取不到工作表   
                        tempWorkbook= new HSSFWorkbook();   
                        Sheet tempSheet=tempWorkbook.createSheet();   
                        Row firstRow=tempSheet.createRow(0);   
                        for(short k=0;k<titleRow.getLastCellNum();k++){//为每个子文件创建标题   
                            Cell c=titleRow.getCell(k);   
                            Cell newcell=firstRow.createCell(k);   
                            newcell.setCellValue(c.getStringCellValue());                       
                        }      
                        map.put(key,tempWorkbook);   
                    }   
                    Sheet secSheet=tempWorkbook.getSheetAt(0);   
                    Row secRow=secSheet.createRow(secSheet.getLastRowNum()+1); 
                    HSSFCellStyle cellStyle =tempWorkbook.createCellStyle();
                    for(short m=0;m<row.getLastCellNum();m++){   
                        Cell newcell=secRow.createCell(m);   
                        setCellValue(newcell,row.getCell(m),tempWorkbook,cellStyle);   
                    }   
                    map.put(key,tempWorkbook);   
                }   
                i=i+1;//行数加一      
            }   
                return map;   
        }   
    
        /**
         * @Title: createSplitHSSFWorkbook 
         * @Description:创建文件  
         * @param map
         * @param savePath
         * @param fileName
         * @throws IOException 
         * @date 2018年7月27日 下午2:28:34
         */
        public static void createSplitHSSFWorkbook(Map<String, HSSFWorkbook> map,String savePath,String fileName)   
                throws IOException {   
            Iterator iter = map.entrySet().iterator();   
            while (iter.hasNext()) {   
                Map.Entry entry = (Map.Entry) iter.next();   
                String key = (String) entry.getKey();           
                HSSFWorkbook val = (HSSFWorkbook) entry.getValue();   
                File filePath=new File(savePath);   
                if(!filePath.exists()){   
                   //存放目录不存在,自动为您创建存放目录
                    filePath.mkdir();   
                }   
                if(!filePath.isDirectory()){      
                    //无效文件目录
                    return ;   
                }   
                File file=new File(savePath+key+"_"+fileName);    
                FileOutputStream fOut;// 新建输出文件流   
                try {   
                    fOut = new FileOutputStream(file);   
                    val.write(fOut); // 把相应的Excel工作薄存盘   
                    fOut.flush();   
                    fOut.close(); // 操作结束,关闭文件   
                } catch (FileNotFoundException e) {   
                    System.out.println("找不到文件");   
                }   
            }   
        }   
    
        /**
         * @Title: setCellValue 
         * @Description:将一个单元格的值赋给另一个单元格 
         * @param newCell
         * @param cell
         * @param wb
         * @param cellStyle 
         * @date 2018年7月27日 上午2:28:54
         */
        public static void setCellValue(Cell newCell,Cell cell,HSSFWorkbook wb,HSSFCellStyle cellStyle){   
    
            if(cell==null){   
                return;   
            }   
            switch(cell.getCellType()){   
            case Cell.CELL_TYPE_BOOLEAN:   
                newCell.setCellValue(cell.getBooleanCellValue());   
                break;   
            case Cell.CELL_TYPE_NUMERIC:   
                if(DateUtil.isCellDateFormatted(cell)){   
                    HSSFDataFormat format= wb.createDataFormat();
                    cellStyle.setDataFormat(format.getFormat("yyyy/m/d"));   
                    newCell.setCellStyle(cellStyle);   
                    newCell.setCellValue(cell.getDateCellValue());   
                }else{   
                    //读取数字   
                    newCell.setCellValue(cell.getNumericCellValue());   
                }   
                break;   
            case Cell.CELL_TYPE_FORMULA:   
                newCell.setCellValue(cell.getCellFormula());   
                break;   
            case Cell.CELL_TYPE_STRING:   
                newCell.setCellValue(cell.getStringCellValue());   
                break;                     
            }   
        }  
          public static void main(String[] arg){
            //导入设备文件地址
            String filePath = "export/deviceExcel";
            //每批导入excel总行数
            int FileMaxNum = 2000;
            String splitPath=SplitExcelUtil.splitExcels(filePath,FileMaxNum);
            System.out.println("已分割好文件,文件位置:"+splitPath);
        }
    } 

    需要注意的是,HSSFCellStyle cellStyle =tempWorkbook.createCellStyle() 如果放在for循环里面,如果复制的工作表较多时,就会报下面的错:

    The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook

    所以应该尽量避免这种情况,本例子已经将cellStyle 放到for循环外面,所以没有这个问题。网上也有用缓存解决这个问题,就是将创建好的cellStyle放在缓存中,需要的就去获取,若为空则创建新的cellStyle,这里就不细说,可以自行百度。


    编写者:梦想的边缘

    展开全文
  • JXL操作Excel例子

    2011-05-15 10:25:50
    在实际项目中经常需要对一些汇总进行导出到Excel表格中,jxl是其中一种方式,下面以jxl导出Excel表格为例一个导出的例子,代码如下所示: [code] package com.myclover.utils.file; import jxl.format....
  • 这是我自己的2个例子,里面是用JXL这个第三方控件来实现了java对excel表格的操作,里面写的很详细,而且jxl.jar包我也放在里面了,大家直接拷贝我的代码就可以用了
  • 教会你怎么把excel的数据导入数据库,请按照上面的例子自己实验。
  • php解决各种excel表格形式导出问题

    千次阅读 2015-07-13 12:05:51
    从我大学毕业到现在,一直有一个问题使我感到困惑,那就是excel表格导出,一...现在先个很简单的例子,新建一个php文件,该php文件中写上很简单的echo hello world;运行该文件,页面上显示hello world. 此时,该hell
  • python实现excel转json的例子(改进版) 由于数值策划给出数值是excel表格,但前台flash程序用的又是json格式。服务器也用了json格式,而json又是utf-8编码的,用C++实现,太痛苦。 鉴于此,尝试用python实现看看。...
  • 用VBA实现了在word中自动填充表格单元格底纹的功能,开始了个EXCEL,但EXCEL的颜色太少,便又用word了一个,属于初学级,一上午一中午的时间才作出来哦!
  • 通过POI建立excel表格后点击下载能够下载该excel表格到本地中 action层 我是的一个题库,以文字题题库为例 package com.emsp.website.safetyStudy.action; import java.text.SimpleDateFormat;
  • 本人萌新,只了简单获取Excel文件插入数据的例子,未文件判断和其他逻辑完善,仅供参考。 ** 创建实体类Ticket ** public class Ticket{ private Integer t_count;//火车票总数 private String name;//火车信息 ...
  •  通过java操作excel表格的工具类库  支持Excel 95-2000的所有版本  生成Excel 2000标准格式  支持字体、数字、日期操作  能够修饰单元格属性  支持图像和图表  应该说以上功能已经能够大致满足我们的需要。最...
  • 我看到网上并没有这种例子,前两天了一个题库app项目,刚好研究出来,分享给大家 先看实例效果: 上传效果以及代码 excel表格: 功能示例 添加成功 接下来看代码 测试的代码 //批量添加 @RequestMapping("/...
  • Python 可谓是开始了数据新征程,Python 依托于简洁的代码量,强大的第三方库的依托,迅速成为当今最火的语言,本文就是作者在使用 Python 的小程序的例子。 从本文中你可以学到什么? 如何使用 Python 的 ...
  • 界面的表格导出为excel,并下载

    千次阅读 2018-11-04 18:39:02
    最近,公司了一个界面上的表格导出为excel并下载的一个功能.下面将具体的做法记录一下,以便后面复习. 首先先说一下需求 一.界面上有一个表格: 就上面这个表格,我是写死的,要在界面上方有一个按钮,导出并下载的...
  • jmetercsv参数化,因为给的表格有60多个变量,我只想指定csv文件的某几列直接参数化,我设置了几个参数化之后,发现(循环1次)他是按照表的列从左往右读取,而非按照表格的表头列名来定位关联的参数化。...
  • excel做anova分析

    万次阅读 2011-04-01 03:27:00
    搜了些anova 方面的资料,备份在这里: anova 是 analysis of variance/方差分析,又称变异数分析或F检验 文本的用excel 进行anova说明 http://www.docin.com/p-41279248.html 这个网页里有个excel文件的例子可以...
  • 问题是: Excel 的工作表数据用颜色标注了的可以修改不任何提示, 没有颜色标注的为重要数据 ,其数据被修改后背景色改变且给出相应的提示; 这用程序来就比较难! 所以我就在网上找了一些例子看! 根据...
  • set_time_limit(0);//不对PHP执行时间限制 $columns = [ 'ID', 'Name', 'Phone','Email'//标题 ]; $csvFileName = $file_name.date('YmdHis',time()) . '.csv';//文件名称 //设置好告诉...
  • ... 在官网可以自己diy样式,这个自由发挥 ...编程学习英文很重要,一定要逼着自己学好英文,官网上例子写的很清楚,写一写自己的一个demo 1.https://start.spring.io/springboot简单生成一个demo工程,maven+tom...
  •  实现思路:在前台加个导出按钮,当用户点击该按钮时重新调用查询table数据的方法获取数据,取得数据后生成Excel表格,同时把数据填充进去。由于在项目每条数据量对应的实现子数据都不一样,因此此处只写了一个...
  • 这个插件是论坛里网友分享的,我就拿来写了几个例子,并成了模块,源码一同分享给大家。 这次新增了高级表格的导入和导出,并且我写了一个演示例子 , 喜欢折腾的朋友拿去改进下吧, 基本用还是没问题的。 增加了 ...
  • 用宏写的对于员工的打卡时间,统计出是否早退和迟到,这里关联的表格包括‘员工考勤表’、‘班次表’、‘排班表’和多个部门表。还有个用函数的根据考勤表出勤情况汇总出相应的扣款表。宏内附带相应的中文注释,...
  • 博文分为两个部分来解决VLOOKUP精确匹配匹配后日期为空显示为1/0/1900的问题 VLOOKUP匹配问题 VLOOKUP函数使用方法 VLOOKUP函数可以用来核对数据,多个表格之间快速导入数据。利用这个功能bai可按列查找,最终...
  • PHP如何将查询出来的数据导出成excel表格(最好一个按钮)讲复杂了啊!你一个完整版的PHPExcel之后解压,在“Examples”目录下会找到一大堆例子,根据你的要求这个“01simple-download-xlsx.php”文件就可以了!注:...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
关键字:

excel做表格例子