`
llyzq
  • 浏览: 580035 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JXL常用代码

    博客分类:
  • J2SE
阅读更多

来自网络

 

1.使用jxl进行exlce的基本操作

下面基础代码来自于网络:

Java代码 复制代码
  1. import java.io.File;     
  2. import java.io.FileOutputStream;     
  3. import java.io.OutputStream;     
  4. import java.util.ArrayList;     
  5. import java.util.Date;     
  6.     
  7. import jxl.Cell;     
  8. import jxl.CellType;     
  9. import jxl.Sheet;     
  10. import jxl.Workbook;     
  11. import jxl.WorkbookSettings;     
  12. import jxl.format.Alignment;     
  13. import jxl.format.Border;     
  14. import jxl.format.BorderLineStyle;     
  15. import jxl.format.Colour;     
  16. import jxl.format.VerticalAlignment;     
  17. import jxl.write.Formula;     
  18. import jxl.write.Label;     
  19. import jxl.write.NumberFormat;     
  20. import jxl.write.WritableCellFeatures;     
  21. import jxl.write.WritableCellFormat;     
  22. import jxl.write.WritableFont;     
  23. import jxl.write.WritableSheet;     
  24. import jxl.write.WritableWorkbook;     
  25. import jxl.write.WriteException;     
  26.     
  27. public class JExcelUtils {     
  28.     
  29.     /**   
  30.      * 生成Excel文件   
  31.      * @param path         文件路径   
  32.      * @param sheetName    工作表名称   
  33.      * @param dataTitles   数据标题   
  34.      */    
  35.    public void createExcelFile(String path,String sheetName,String[] dataTitles){     
  36.        WritableWorkbook workbook;     
  37.        try{     
  38.            OutputStream os=new FileOutputStream(path);      
  39.            workbook=Workbook.createWorkbook(os);      
  40.     
  41.            WritableSheet sheet = workbook.createSheet(sheetName, 0); //添加第一个工作表     
  42.            initialSheetSetting(sheet);     
  43.                 
  44.            Label label;     
  45.            for (int i=0; i<dataTitles.length; i++){     
  46.                //Label(列号,行号,内容,风格)     
  47.                label = new Label(i, 0, dataTitles[i],getTitleCellFormat());      
  48.                sheet.addCell(label);      
  49.            }     
  50.     
  51.            //插入一行     
  52.            insertRowData(sheet,1,new String[]{"200201001","张三","100","60","100","260"},getDataCellFormat(CellType.STRING_FORMULA));     
  53.                 
  54.            //一个一个插入行     
  55.            label = new Label(02,"200201002",getDataCellFormat(CellType.STRING_FORMULA));      
  56.            sheet.addCell(label);     
  57.                 
  58.            label = new Label(12,"李四",getDataCellFormat(CellType.STRING_FORMULA));      
  59.            sheet.addCell(label);     
  60.                 
  61.            insertOneCellData(sheet,2,2,70.5,getDataCellFormat(CellType.NUMBER));     
  62.            insertOneCellData(sheet,3,2,90.523,getDataCellFormat(CellType.NUMBER));     
  63.            insertOneCellData(sheet,4,2,60.5,getDataCellFormat(CellType.NUMBER));     
  64.     
  65.            insertFormula(sheet,5,2,"C3+D3+E3",getDataCellFormat(CellType.NUMBER_FORMULA));     
  66.                 
  67.            //插入日期     
  68.            mergeCellsAndInsertData(sheet, 0353new Date(), getDataCellFormat(CellType.DATE));     
  69.                 
  70.            workbook.write();      
  71.            workbook.close();     
  72.        }catch(Exception e){     
  73.            e.printStackTrace();     
  74.        }     
  75.    }     
  76.         
  77.    /**   
  78.     * 初始化表格属性   
  79.     * @param sheet   
  80.     */    
  81.    public void initialSheetSetting(WritableSheet sheet){     
  82.       try{     
  83.            //sheet.getSettings().setProtected(true); //设置xls的保护,单元格为只读的     
  84.            sheet.getSettings().setDefaultColumnWidth(10); //设置列的默认宽度     
  85.            //sheet.setRowView(2,false);//行高自动扩展      
  86.            //setRowView(int row, int height);--行高      
  87.            //setColumnView(int  col,int width); --列宽     
  88.            sheet.setColumnView(0,20);//设置第一列宽度     
  89.       }catch(Exception e){     
  90.           e.printStackTrace();     
  91.       }     
  92.    }     
  93.         
  94.    /**   
  95.     * 插入公式   
  96.     * @param sheet   
  97.     * @param col   
  98.     * @param row   
  99.     * @param formula   
  100.     * @param format   
  101.     */    
  102.    public void insertFormula(WritableSheet sheet,Integer col,Integer row,String formula,WritableCellFormat format){     
  103.        try{     
  104.            Formula f = new Formula(col, row, formula, format);     
  105.            sheet.addCell(f);     
  106.        }catch(Exception e){     
  107.            e.printStackTrace();     
  108.        }     
  109.    }     
  110.         
  111.    /**   
  112.     * 插入一行数据   
  113.     * @param sheet       工作表   
  114.     * @param row         行号   
  115.     * @param content     内容   
  116.     * @param format      风格   
  117.     */    
  118.    public void insertRowData(WritableSheet sheet,Integer row,String[] dataArr,WritableCellFormat format){     
  119.        try{     
  120.            Label label;     
  121.            for(int i=0;i<dataArr.length;i++){     
  122.                label = new Label(i,row,dataArr[i],format);     
  123.                sheet.addCell(label);     
  124.            }     
  125.        }catch(Exception e){     
  126.            e.printStackTrace();     
  127.        }     
  128.    }     
  129.         
  130.    /**   
  131.     * 插入单元格数据   
  132.     * @param sheet   
  133.     * @param col   
  134.     * @param row   
  135.     * @param data   
  136.     */    
  137.    public void insertOneCellData(WritableSheet sheet,Integer col,Integer row,Object data,WritableCellFormat format){     
  138.        try{     
  139.            if(data instanceof Double){     
  140.                jxl.write.Number  labelNF = new jxl.write.Number(col,row,(Double)data,format);      
  141.                sheet.addCell(labelNF);      
  142.            }else if(data instanceof Boolean){     
  143.                jxl.write.Boolean labelB = new jxl.write.Boolean(col,row,(Boolean)data,format);      
  144.                sheet.addCell(labelB);      
  145.            }else if(data instanceof Date){     
  146.                jxl.write.DateTime labelDT = new jxl.write.DateTime(col,row,(Date)data,format);      
  147.                sheet.addCell(labelDT);      
  148.                setCellComments(labelDT, "这是个创建表的日期说明!");     
  149.            }else{     
  150.                Label label = new Label(col,row,data.toString(),format);     
  151.                sheet.addCell(label);                    
  152.            }     
  153.        }catch(Exception e){     
  154.            e.printStackTrace();     
  155.        }     
  156.     
  157.   }     
  158.         
  159.    /**   
  160.     * 合并单元格,并插入数据   
  161.     * @param sheet   
  162.     * @param col_start   
  163.     * @param row_start   
  164.     * @param col_end   
  165.     * @param row_end   
  166.     * @param data   
  167.     * @param format   
  168.     */    
  169.    public void mergeCellsAndInsertData(WritableSheet sheet,Integer col_start,Integer row_start,Integer col_end,Integer row_end,Object data, WritableCellFormat format){     
  170.       try{     
  171.           sheet.mergeCells(col_start,row_start,col_end,row_end);// 左上角到右下角     
  172.           insertOneCellData(sheet, col_start, row_start, data, format);     
  173.       }catch(Exception e){     
  174.           e.printStackTrace();     
  175.       }     
  176.     
  177.    }     
  178.         
  179.    /**   
  180.     * 给单元格加注释   
  181.     * @param label   
  182.     * @param comments   
  183.     */    
  184.    public void setCellComments(Object label,String comments){     
  185.        WritableCellFeatures cellFeatures = new WritableCellFeatures();     
  186.        cellFeatures.setComment(comments);     
  187.        if(label instanceof jxl.write.Number){     
  188.            jxl.write.Number num = (jxl.write.Number)label;     
  189.            num.setCellFeatures(cellFeatures);     
  190.        }else if(label instanceof jxl.write.Boolean){     
  191.            jxl.write.Boolean bool = (jxl.write.Boolean)label;     
  192.            bool.setCellFeatures(cellFeatures);     
  193.        }else if(label instanceof jxl.write.DateTime){     
  194.            jxl.write.DateTime dt = (jxl.write.DateTime)label;     
  195.            dt.setCellFeatures(cellFeatures);     
  196.        }else{     
  197.            Label _label = (Label)label;     
  198.            _label.setCellFeatures(cellFeatures);     
  199.        }     
  200.    }     
  201.         
  202.    /**   
  203.    * 读取excel   
  204.    * @param inputFile   
  205.    * @param inputFileSheetIndex   
  206.    * @throws Exception   
  207.    */    
  208.    public ArrayList<String> readDataFromExcel(File inputFile, int inputFileSheetIndex){     
  209.       ArrayList<String> list = new ArrayList<String>();     
  210.       Workbook book = null;     
  211.       Cell cell = null;     
  212.       WorkbookSettings setting = new WorkbookSettings();      
  213.       java.util.Locale locale = new java.util.Locale("zh","CN");      
  214.       setting.setLocale(locale);     
  215.       setting.setEncoding("ISO-8859-1");     
  216.       try{     
  217.           book = Workbook.getWorkbook(inputFile, setting);     
  218.       }catch(Exception e){     
  219.           e.printStackTrace();       
  220.       }     
  221.     
  222.       Sheet sheet = book.getSheet(inputFileSheetIndex);     
  223.       for (int rowIndex = 0; rowIndex < sheet.getRows(); rowIndex++) {//行     
  224.        for (int colIndex = 0; colIndex < sheet.getColumns(); colIndex++) {//列     
  225.            cell = sheet.getCell(colIndex, rowIndex);     
  226.            //System.out.println(cell.getContents());     
  227.            list.add(cell.getContents());     
  228.        }     
  229.       }     
  230.       book.close();     
  231.     
  232.       return list;     
  233.    }     
  234.     
  235.    /**   
  236.     * 得到数据表头格式   
  237.     * @return   
  238.     */    
  239.    public WritableCellFormat getTitleCellFormat(){     
  240.        WritableCellFormat wcf = null;     
  241.        try {     
  242.            //字体样式     
  243.            WritableFont wf = new WritableFont(WritableFont.TIMES,12, WritableFont.NO_BOLD,false);//最后一个为是否italic     
  244.            wf.setColour(Colour.RED);     
  245.            wcf = new WritableCellFormat(wf);     
  246.            //对齐方式     
  247.            wcf.setAlignment(Alignment.CENTRE);     
  248.            wcf.setVerticalAlignment(VerticalAlignment.CENTRE);     
  249.            //边框     
  250.            wcf.setBorder(Border.ALL,BorderLineStyle.THIN);     
  251.                 
  252.            //背景色     
  253.            wcf.setBackground(Colour.GREY_25_PERCENT);     
  254.        } catch (WriteException e) {     
  255.         e.printStackTrace();     
  256.        }     
  257.        return wcf;     
  258.    }     
  259.         
  260.    /**   
  261.     * 得到数据格式   
  262.     * @return   
  263.     */    
  264.    public WritableCellFormat getDataCellFormat(CellType type){     
  265.        WritableCellFormat wcf = null;     
  266.        try {     
  267.            //字体样式     
  268.            if(type == CellType.NUMBER || type == CellType.NUMBER_FORMULA){//数字     
  269.               NumberFormat nf = new NumberFormat("#.00");     
  270.               wcf = new WritableCellFormat(nf);      
  271.            }else if(type == CellType.DATE || type == CellType.DATE_FORMULA){//日期     
  272.                jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-MM-dd hh:mm:ss");      
  273.                wcf = new jxl.write.WritableCellFormat(df);      
  274.            }else{     
  275.                WritableFont wf = new WritableFont(WritableFont.TIMES,10, WritableFont.NO_BOLD,false);//最后一个为是否italic     
  276.                wcf = new WritableCellFormat(wf);     
  277.            }     
  278.            //对齐方式     
  279.            wcf.setAlignment(Alignment.CENTRE);     
  280.            wcf.setVerticalAlignment(VerticalAlignment.CENTRE);     
  281.            //边框     
  282.            wcf.setBorder(Border.LEFT,BorderLineStyle.THIN);     
  283.            wcf.setBorder(Border.BOTTOM,BorderLineStyle.THIN);     
  284.            wcf.setBorder(Border.RIGHT,BorderLineStyle.THIN);     
  285.            //背景色     
  286.            wcf.setBackground(Colour.WHITE);     
  287.                 
  288.            wcf.setWrap(true);//自动换行     
  289.                 
  290.        } catch (WriteException e) {     
  291.         e.printStackTrace();     
  292.        }     
  293.        return wcf;     
  294.    }     
  295.         
  296.    /**   
  297.     * 打开文件看看   
  298.     * @param exePath   
  299.     * @param filePath   
  300.     */    
  301.    public void openExcel(String exePath,String filePath){     
  302.        Runtime r=Runtime.getRuntime();      
  303.        String cmd[]={exePath,filePath};      
  304.        try{      
  305.            r.exec(cmd);      
  306.        }catch(Exception e){     
  307.            e.printStackTrace();     
  308.        }     
  309.    }     
  310.         
  311.    public static void main(String[] args){     
  312.        String[] titles = {"学号","姓名","语文","数学","英语","总分"};      
  313.        JExcelUtils jxl = new JExcelUtils();     
  314.        String filePath = "E:/test.xls";     
  315.        jxl.createExcelFile(filePath," 成绩单",titles);     
  316.        jxl.readDataFromExcel(new File(filePath),0);     
  317.        jxl.openExcel("C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE",filePath);     
  318.    }     
  319. }   
import java.io.File;  
import java.io.FileOutputStream;  
import java.io.OutputStream;  
import java.util.ArrayList;  
import java.util.Date;  
 
import jxl.Cell;  
import jxl.CellType;  
import jxl.Sheet;  
import jxl.Workbook;  
import jxl.WorkbookSettings;  
import jxl.format.Alignment;  
import jxl.format.Border;  
import jxl.format.BorderLineStyle;  
import jxl.format.Colour;  
import jxl.format.VerticalAlignment;  
import jxl.write.Formula;  
import jxl.write.Label;  
import jxl.write.NumberFormat;  
import jxl.write.WritableCellFeatures;  
import jxl.write.WritableCellFormat;  
import jxl.write.WritableFont;  
import jxl.write.WritableSheet;  
import jxl.write.WritableWorkbook;  
import jxl.write.WriteException;  
 
public class JExcelUtils {  
 
    /** 
     * 生成Excel文件 
     * @param path         文件路径 
     * @param sheetName    工作表名称 
     * @param dataTitles   数据标题 
     */ 
   public void createExcelFile(String path,String sheetName,String[] dataTitles){  
       WritableWorkbook workbook;  
       try{  
           OutputStream os=new FileOutputStream(path);   
           workbook=Workbook.createWorkbook(os);   
 
           WritableSheet sheet = workbook.createSheet(sheetName, 0); //添加第一个工作表  
           initialSheetSetting(sheet);  
             
           Label label;  
           for (int i=0; i<dataTitles.length; i++){  
               //Label(列号,行号,内容,风格)  
               label = new Label(i, 0, dataTitles[i],getTitleCellFormat());   
               sheet.addCell(label);   
           }  
 
           //插入一行  
           insertRowData(sheet,1,new String[]{"200201001","张三","100","60","100","260"},getDataCellFormat(CellType.STRING_FORMULA));  
             
           //一个一个插入行  
           label = new Label(0, 2,"200201002",getDataCellFormat(CellType.STRING_FORMULA));   
           sheet.addCell(label);  
             
           label = new Label(1, 2,"李四",getDataCellFormat(CellType.STRING_FORMULA));   
           sheet.addCell(label);  
             
           insertOneCellData(sheet,2,2,70.5,getDataCellFormat(CellType.NUMBER));  
           insertOneCellData(sheet,3,2,90.523,getDataCellFormat(CellType.NUMBER));  
           insertOneCellData(sheet,4,2,60.5,getDataCellFormat(CellType.NUMBER));  
 
           insertFormula(sheet,5,2,"C3+D3+E3",getDataCellFormat(CellType.NUMBER_FORMULA));  
             
           //插入日期  
           mergeCellsAndInsertData(sheet, 0, 3, 5, 3, new Date(), getDataCellFormat(CellType.DATE));  
             
           workbook.write();   
           workbook.close();  
       }catch(Exception e){  
           e.printStackTrace();  
       }  
   }  
     
   /** 
    * 初始化表格属性 
    * @param sheet 
    */ 
   public void initialSheetSetting(WritableSheet sheet){  
      try{  
           //sheet.getSettings().setProtected(true); //设置xls的保护,单元格为只读的  
           sheet.getSettings().setDefaultColumnWidth(10); //设置列的默认宽度  
           //sheet.setRowView(2,false);//行高自动扩展   
           //setRowView(int row, int height);--行高   
           //setColumnView(int  col,int width); --列宽  
           sheet.setColumnView(0,20);//设置第一列宽度  
      }catch(Exception e){  
          e.printStackTrace();  
      }  
   }  
     
   /** 
    * 插入公式 
    * @param sheet 
    * @param col 
    * @param row 
    * @param formula 
    * @param format 
    */ 
   public void insertFormula(WritableSheet sheet,Integer col,Integer row,String formula,WritableCellFormat format){  
       try{  
           Formula f = new Formula(col, row, formula, format);  
           sheet.addCell(f);  
       }catch(Exception e){  
           e.printStackTrace();  
       }  
   }  
     
   /** 
    * 插入一行数据 
    * @param sheet       工作表 
    * @param row         行号 
    * @param content     内容 
    * @param format      风格 
    */ 
   public void insertRowData(WritableSheet sheet,Integer row,String[] dataArr,WritableCellFormat format){  
       try{  
           Label label;  
           for(int i=0;i<dataArr.length;i++){  
               label = new Label(i,row,dataArr[i],format);  
               sheet.addCell(label);  
           }  
       }catch(Exception e){  
           e.printStackTrace();  
       }  
   }  
     
   /** 
    * 插入单元格数据 
    * @param sheet 
    * @param col 
    * @param row 
    * @param data 
    */ 
   public void insertOneCellData(WritableSheet sheet,Integer col,Integer row,Object data,WritableCellFormat format){  
       try{  
           if(data instanceof Double){  
               jxl.write.Number  labelNF = new jxl.write.Number(col,row,(Double)data,format);   
               sheet.addCell(labelNF);   
           }else if(data instanceof Boolean){  
               jxl.write.Boolean labelB = new jxl.write.Boolean(col,row,(Boolean)data,format);   
               sheet.addCell(labelB);   
           }else if(data instanceof Date){  
               jxl.write.DateTime labelDT = new jxl.write.DateTime(col,row,(Date)data,format);   
               sheet.addCell(labelDT);   
               setCellComments(labelDT, "这是个创建表的日期说明!");  
           }else{  
               Label label = new Label(col,row,data.toString(),format);  
               sheet.addCell(label);                 
           }  
       }catch(Exception e){  
           e.printStackTrace();  
       }  
 
  }  
     
   /** 
    * 合并单元格,并插入数据 
    * @param sheet 
    * @param col_start 
    * @param row_start 
    * @param col_end 
    * @param row_end 
    * @param data 
    * @param format 
    */ 
   public void mergeCellsAndInsertData(WritableSheet sheet,Integer col_start,Integer row_start,Integer col_end,Integer row_end,Object data, WritableCellFormat format){  
      try{  
          sheet.mergeCells(col_start,row_start,col_end,row_end);// 左上角到右下角  
          insertOneCellData(sheet, col_start, row_start, data, format);  
      }catch(Exception e){  
          e.printStackTrace();  
      }  
 
   }  
     
   /** 
    * 给单元格加注释 
    * @param label 
    * @param comments 
    */ 
   public void setCellComments(Object label,String comments){  
       WritableCellFeatures cellFeatures = new WritableCellFeatures();  
       cellFeatures.setComment(comments);  
       if(label instanceof jxl.write.Number){  
           jxl.write.Number num = (jxl.write.Number)label;  
           num.setCellFeatures(cellFeatures);  
       }else if(label instanceof jxl.write.Boolean){  
           jxl.write.Boolean bool = (jxl.write.Boolean)label;  
           bool.setCellFeatures(cellFeatures);  
       }else if(label instanceof jxl.write.DateTime){  
           jxl.write.DateTime dt = (jxl.write.DateTime)label;  
           dt.setCellFeatures(cellFeatures);  
       }else{  
           Label _label = (Label)label;  
           _label.setCellFeatures(cellFeatures);  
       }  
   }  
     
   /** 
   * 读取excel 
   * @param inputFile 
   * @param inputFileSheetIndex 
   * @throws Exception 
   */ 
   public ArrayList<String> readDataFromExcel(File inputFile, int inputFileSheetIndex){  
      ArrayList<String> list = new ArrayList<String>();  
      Workbook book = null;  
      Cell cell = null;  
      WorkbookSettings setting = new WorkbookSettings();   
      java.util.Locale locale = new java.util.Locale("zh","CN");   
      setting.setLocale(locale);  
      setting.setEncoding("ISO-8859-1");  
      try{  
          book = Workbook.getWorkbook(inputFile, setting);  
      }catch(Exception e){  
          e.printStackTrace();    
      }  
 
      Sheet sheet = book.getSheet(inputFileSheetIndex);  
      for (int rowIndex = 0; rowIndex < sheet.getRows(); rowIndex++) {//行  
       for (int colIndex = 0; colIndex < sheet.getColumns(); colIndex++) {//列  
           cell = sheet.getCell(colIndex, rowIndex);  
           //System.out.println(cell.getContents());  
           list.add(cell.getContents());  
       }  
      }  
      book.close();  
 
      return list;  
   }  
 
   /** 
    * 得到数据表头格式 
    * @return 
    */ 
   public WritableCellFormat getTitleCellFormat(){  
       WritableCellFormat wcf = null;  
       try {  
           //字体样式  
           WritableFont wf = new WritableFont(WritableFont.TIMES,12, WritableFont.NO_BOLD,false);//最后一个为是否italic  
           wf.setColour(Colour.RED);  
           wcf = new WritableCellFormat(wf);  
           //对齐方式  
           wcf.setAlignment(Alignment.CENTRE);  
           wcf.setVerticalAlignment(VerticalAlignment.CENTRE);  
           //边框  
           wcf.setBorder(Border.ALL,BorderLineStyle.THIN);  
             
           //背景色  
           wcf.setBackground(Colour.GREY_25_PERCENT);  
       } catch (WriteException e) {  
        e.printStackTrace();  
       }  
       return wcf;  
   }  
     
   /** 
    * 得到数据格式 
    * @return 
    */ 
   public WritableCellFormat getDataCellFormat(CellType type){  
       WritableCellFormat wcf = null;  
       try {  
           //字体样式  
           if(type == CellType.NUMBER || type == CellType.NUMBER_FORMULA){//数字  
              NumberFormat nf = new NumberFormat("#.00");  
              wcf = new WritableCellFormat(nf);   
           }else if(type == CellType.DATE || type == CellType.DATE_FORMULA){//日期  
               jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-MM-dd hh:mm:ss");   
               wcf = new jxl.write.WritableCellFormat(df);   
           }else{  
               WritableFont wf = new WritableFont(WritableFont.TIMES,10, WritableFont.NO_BOLD,false);//最后一个为是否italic  
               wcf = new WritableCellFormat(wf);  
           }  
           //对齐方式  
           wcf.setAlignment(Alignment.CENTRE);  
           wcf.setVerticalAlignment(VerticalAlignment.CENTRE);  
           //边框  
           wcf.setBorder(Border.LEFT,BorderLineStyle.THIN);  
           wcf.setBorder(Border.BOTTOM,BorderLineStyle.THIN);  
           wcf.setBorder(Border.RIGHT,BorderLineStyle.THIN);  
           //背景色  
           wcf.setBackground(Colour.WHITE);  
             
           wcf.setWrap(true);//自动换行  
             
       } catch (WriteException e) {  
        e.printStackTrace();  
       }  
       return wcf;  
   }  
     
   /** 
    * 打开文件看看 
    * @param exePath 
    * @param filePath 
    */ 
   public void openExcel(String exePath,String filePath){  
       Runtime r=Runtime.getRuntime();   
       String cmd[]={exePath,filePath};   
       try{   
           r.exec(cmd);   
       }catch(Exception e){  
           e.printStackTrace();  
       }  
   }  
     
   public static void main(String[] args){  
       String[] titles = {"学号","姓名","语文","数学","英语","总分"};   
       JExcelUtils jxl = new JExcelUtils();  
       String filePath = "E:/test.xls";  
       jxl.createExcelFile(filePath," 成绩单",titles);  
       jxl.readDataFromExcel(new File(filePath),0);  
       jxl.openExcel("C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE",filePath);  
   }  
} 

 2.下面含有几个十分有用针对excel操作的的工具方法:

 

Java代码 复制代码
  1. import java.io.File;   
  2. import java.util.ArrayList;   
  3. import java.util.HashMap;   
  4. import java.util.List;   
  5. import java.util.Map;   
  6. import java.util.regex.Matcher;   
  7. import java.util.regex.Pattern;   
  8.   
  9. import jxl.Cell;   
  10. import jxl.CellView;   
  11. import jxl.Sheet;   
  12. import jxl.SheetSettings;   
  13. import jxl.Workbook;   
  14. import jxl.format.Alignment;   
  15. import jxl.write.Label;   
  16. import jxl.write.WritableFont;   
  17. import jxl.write.WritableSheet;   
  18. import jxl.write.WritableWorkbook;   
  19.   
  20. /**  
  21.  * jxl操作excel的工具类.  
  22.  *  
  23.  */  
  24. public class JxlTool {   
  25.     public static int count = 1;   
  26.     //存储带有级别信息的内容到位置的映射关系.   
  27.     private static Map levelToLocation = new HashMap();   
  28.        
  29.     public static void readExcel(String fileName) {   
  30.         Workbook wb = null;   
  31.         try {   
  32.             wb = Workbook.getWorkbook(new File(fileName));   
  33.             Sheet[] sheets = wb.getSheets();   
  34.             for(int i=0;i<sheets.length;i++){   
  35.                 Sheet ii = sheets[i];  
    分享到:
    评论
    2 楼 llyzq 2010-12-01  
    几十M应该不算大吧,是不是你代码的问题
    1 楼 chhbwf 2010-11-30  
    请问如果excel较大(几十M),jxl会报OOM(内存溢出)的问题,有其他方式吗?

相关推荐

    jxl 操作excel Demo

    这个"jxl操作excel Demo"显然是一份示例代码,它展示了如何使用jxl库来与Excel文件进行交互。以下是对jxl库和其在处理Excel文件中使用方法的详细说明。 1. **jxl库介绍** jxl是一个开源的Java库,允许开发者在Java...

    常用java IO操作以及用jxl读写excel 工具源代码

    本工具结合了Java IO操作和JXL库,实现了读取Excel文件并进行数据处理的功能,主要应用于国际化键值的替换。 首先,Java IO操作包括了基本的文件操作,如创建、读取、写入和删除文件。在Java中,我们通常使用`File`...

    JXL 下载 Excel 文档

    标签“源码”暗示了博客可能包含了实际的Java代码片段,这些代码展示了如何将JXL库集成到项目中,以实现对Excel文件的读写功能。“工具”标签则可能意味着博主还提到了其他的辅助工具或者与JXL相关的库,这些工具...

    JXL对EXCEL的支持

    因此,在处理大型Excel文件时,需要合理设计代码,避免一次性加载整个工作簿到内存中。JXL提供了一些流式处理的API,可以帮助优化内存使用。 5. **错误处理和异常** 使用JXL时,可能遇到各种异常,如文件不存在、...

    Android-Android使用jxl快速导出excel表

    在这种场景下,一个常用的库是jxl,它允许开发者在Java环境中创建、读取和修改Excel文件。本文将详细探讨如何在Android应用中使用jxl库快速导出Excel表格。 首先,我们需要理解jxl库的基本概念。jxl是一个Java API...

    java开发Excel所需 poi jxl两种jar包

    本文将深入探讨两种常用的Java库:Apache POI和JXL,它们都提供了处理Excel文件的能力。 Apache POI是Apache软件基金会的一个开源项目,它提供了一个强大的API,允许Java开发者读取、写入和修改Microsoft Office...

    Jxl和poi读取写入excel

    在Java编程环境中,处理Excel文件是一项常见的任务,无论是数据分析、数据导入导出还是报表生成,Excel都是常用的数据载体。本文将深入探讨如何使用Jxl和Apache POI库来读取和写入Excel文件,同时会区分2007年之后的...

    Excel生成导出JXL和POI两种方式小demo

    此时,开发者通常会借助编程语言来实现自动化操作,Java中就有两个常用的库,即JXL和Apache POI,用于读写Excel文件。下面我们将详细探讨这两个库以及如何使用它们生成Excel导出。 1. **JXL库**: JXL是Java Excel...

    java poi jxl 操作excel的小例子

    Java POI 和 JXL 是两种常用的 Java 库,用于处理 Microsoft Excel 文件。在这个入门级的实例中,我们将探讨如何使用这两个库来操作Excel文件。首先,我们先了解一下这两个库的基本概念。 1. **Java POI**: - ...

    使用jxl将数据库的数据导出到Excel

    这时,一个常用的工具就是JXL库。JXL全称为Java Excel API,它是一个强大的开源Java库,允许开发者在Java应用程序中读取、修改和创建Excel文件(.xls格式)。本篇文章将详细介绍如何利用JXL将数据库的数据导出到...

    eclipse可导入的jar包

    在Eclipse中,你需要将jxl的jar包导入到项目的类路径中,这样就可以在代码中直接使用jxl提供的API来操作Excel了。 另一个标签是“servelet”。Servlet是Java Web开发中的一个关键组件,主要用于扩展服务器的功能。...

    jxl操作execl

    而“JExcelUtil.java”很可能是一个自定义工具类,封装了使用jxl库的常用操作。这样的工具类可以提高代码复用性,减少重复代码。它可能包含静态方法,如`public static void writeExcel(List&lt;List&lt;String&gt;&gt; data, ...

    java 操作Excel jxl poi 有例子

    在Java中,有多个库可以帮助我们实现这一目标,其中最常用的两个是JXL和Apache POI。这两个库都提供了丰富的API,使得开发者能够方便地与Excel文件进行交互。 **JXL库** JXL(Java Excel API)是一个轻量级的库,...

    jxl-0.9.2

    4. `examples`:可能是一些示例代码或者案例,帮助开发者了解如何使用jxl库。 5. `src`:源代码目录,开发者可以查看库的内部实现,学习如何与库进行交互。 6. `doc`:可能是API文档或者用户手册,提供了详细的使用...

    java操作Excel-jxl与poj的比较 .docx

    Java操作Excel时,有两种常用的库:jxl和Apache POI(POJ是POI的一部分,全称为Plain Old Java Objects)。这两个库都允许开发者在Java应用程序中读取、写入和修改Excel文件,但它们有不同的特性和适用场景。 **jxl...

    常用软件常用软件常用软件常用软件常用软件

    3. **相关资源文件**:“从 Java 应用程序动态生成 PDF 文件.files”和“java中jxl导出数据到excel的例子 - kkgoing的专栏 - CSDN博客.files”这两个目录可能包含示例代码、图片或其他辅助资源,帮助开发者更好地...

    Keil_ARM_MDK_5.26.2_JXL配色方案+代码格式化.rar

    一套自己用的配色方案,增加了一些常用关键字,使用了自由软件的雅黑字体(压缩包中带),在Keil_ARM_MDK_5.26.2下配的,其它版本也能用。 修正了上一个版本的中有几个地方不合理的配色。因为上传了的资源不能改,...

    jxl 导出数据到excel的实例讲解

    `jxl`库是一个常用的工具,它允许开发者用Java来读写Excel文件。本文将深入探讨如何使用`jxl`库将数据导出到Excel,并分析其优缺点以及一个具体的实例。 **jxl库介绍** `jxl`库是一个纯Java的API,它支持读取和写入...

    java创建excel文件所需的jar包(jxl.jar , poi.jar)

    要实现这一功能,你需要依赖一些外部库,其中最常用的就是jxl.jar和poi.jar。这两个jar包分别提供了对Excel文件的不同级别的支持。 首先,让我们来了解一下jxl.jar。这是一个专门用于读写Microsoft Excel文件的Java...

    安卓Excelwordppt文档读写相关-安卓excel表格保存数据使用jxl程序包进行二次封装使用起来更加方便简单常用的方法都有接口能够缩短相关应用开发的时间.rar

    安卓excel表格保存数据使用jxl程序包进行二次封装,使用起来更加方便简单,常用的方法都有接口,能够缩短相关应用开发的时间.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

Global site tag (gtag.js) - Google Analytics