`
llyzq
  • 浏览: 585568 次
  • 性别: 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创建下拉列表

    下面是一个具体的示例代码,演示了如何使用jxl库创建带有下拉列表的Excel文件: ```java import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import jxl....

    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相关的库,这些工具...

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

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

    excel操作(jxl)

    在Java开发中,处理Excel文件时,jxl库是一个常用的选择。jxl库提供了全面的功能,可以方便地进行Excel数据的导入和导出,支持从Java程序中解释和生成Excel文件。该库不仅支持Excel 95到2000的所有版本,还能生成...

    JXL对EXCEL的支持

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

    JAVA操作Excel(jxl使用介绍).pdf

    - **直接从本地文件创建**:这种方式最常用,只需要指定文件路径即可。 - **从输入流创建**:这种方式适用于从网络或其他数据源读取Excel文件的情况。 示例代码如下: ```java import java.io.FileInputStream; ...

    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报表JXL和POI打印设置 java 生成excel 设置打印

    JXL 和 POI 是两个常用的库来操作Excel文件。其中,对于打印功能的支持是必不可少的一个环节。本文将详细介绍如何使用JXL 和 POI 库来设置打印选项,包括页面方向、缩放比例、边距调整等。 #### 一、JXL 设置打印 ...

    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...

Global site tag (gtag.js) - Google Analytics