jxl 读写Excel实例(設置cell format 格式)

xiaoxiao2021-02-28  101

      本篇文章主要讲的是jxl 操作Excel的三个简单的实例,一个是读取Excel表格数据,一个是 写一个新的Excel表格,最后是更新现有的Excel表格。在开始全面学习 jxl 之前,我们先看几个例子,让大家大概整体的了解一下jxl 是怎么操作Excel表的,以使之后更有兴趣,更好地学习jxl。

        

        读Excel表格数据:

        

[java]  view plain  copy import java.io.File;   import java.io.IOException;   import jxl.Cell;   import jxl.Sheet;   import jxl.Workbook;   import jxl.read.biff.BiffException;      /**   *   * @author yrs   */   public class TRead {              public static void read (Workbook book) {           int rows;           //得到Excel中工作表数           int sheetNumber = book.getNumberOfSheets();           //得到每个表的名称           String [] sheetNameList = book.getSheetNames();           //得到每个工作表           Sheet [] sheetList = book.getSheets();                      //遍历每个单元格,得到单元格的内容,并输出。注意得到单元格的内容是以字符串形式返回的。           for(int i = 0;i < sheetNumber;i++) {               System.out.println("############## " + sheetNameList[i] + " ##############");               //得到该工作表中数据的行数               rows = sheetList[i].getRows();               for(int j = 0;j < rows;j++) {                   //得到每一行的单元格                   Cell [] cellList = sheetList[i].getRow(j);                   for (Cell cell : cellList) {                       System.out.print(cell.getContents() + "  ");                   }                   System.out.println();               }                     }             }       public static void main(String [] args) throws IOException, BiffException  {           try {               //文件D://JEtest//read.xls 要存在,并且含有数据。               File file = new File("D://JEtest//read.xls");               //得到工作簿               Workbook book = Workbook.getWorkbook(file);                TRead.read(book);               book.close();                       }catch (IOException | BiffException e) {               System.out.println("Exception:  " + e);               throw e;           }       }     }         

        读Excel表格的步奏是:工作簿--》工作表--》单元格。 当然有时候对数据经行处理要知道数据的格式,这个要在取得单元格的时候对它进行数据类型的判断,然后再转化成相应的类型,从而得到原数据类型的值。关于数据类型会在之后的文章中介绍。

 

        生成一个新的Excel表格,并向里面写数据:

[java]  view plain  copy import java.io.File;   import java.io.IOException;   import jxl.Workbook;   import jxl.read.biff.BiffException;   import jxl.write.Label;   import jxl.write.Number;   import jxl.write.Boolean;   import jxl.write.DateFormat;   import jxl.write.DateTime;   import jxl.write.NumberFormat;   import jxl.write.WritableCellFormat;   import jxl.write.WritableFont;   import jxl.write.WritableSheet;   import jxl.write.WritableWorkbook;   import jxl.write.WriteException;         /**   *   * @author yrs   */   public class TWrite {              public static void  write(WritableWorkbook wb) throws WriteException {           WritableSheet wSheet = wb.createSheet("sheet1"0);                      //添加Label对象            Label labelC = new Label(00"Label cell");            wSheet.addCell(labelC);                      //添加Number对象            Number numberC = new Number(013.1415926);            wSheet.addCell(numberC);                       // 3.添加Boolean对象            Boolean booleanC = new Boolean(02true);            wSheet.addCell(booleanC);                       // 4.添加DateTime对象            DateTime dateTimeC = new DateTime(03new java.util.Date());            wSheet.addCell(dateTimeC);                       // 添加带有字型Formatting的对象            WritableFont wFont = new WritableFont(                WritableFont.TIMES, 18, WritableFont.BOLD, true);            WritableCellFormat wCellFormatC = new WritableCellFormat(wFont);            Label labelCF = new Label(10"Label Cell", wCellFormatC);            wSheet.addCell(labelCF);                        // 添加带有formatting的Number对象            NumberFormat nFormat = new NumberFormat("#.##");            WritableCellFormat wCellFormatN = new WritableCellFormat(nFormat);           Number numberNF = new Number(113.1415926, wCellFormatN);            wSheet.addCell(numberNF);                       // 添加带有formatting的DateFormat对象            DateFormat dFormat = new DateFormat(              "yyyy MM dd hh:mm:ss");            WritableCellFormat wCellFormatD = new WritableCellFormat(dFormat);            DateTime dateTimeDF = new DateTime(13new java.util.Date(), wCellFormatD);            wSheet.addCell(dateTimeDF);                  }       public static void main(String [] args) throws IOException, BiffException, WriteException  {           try {                              //文件D://JEtest//read.xls 不存在,若存在数据将会丢失               File file = new File("D://JEtest//write.xls");               //创建一个新的可写工作簿               WritableWorkbook wb = Workbook.createWorkbook(file);                TWrite.write(wb);                              // 写入Exel工作表                wb.write();               // 关闭Excel工作薄对象                wb.close();                       }catch (IOException | WriteException e) {               System.out.println("Exception:  " + e);               throw e;           }       }     }           生成一个新的Excel表格,并向里面写入数据的顺序也是 工作簿 -- 工作表 -- 单元格。但是写入数据的顺序是反过来的,先向单元格中添加数据,然后添加到工作表上,最后写入工作簿中。这里需要注意的是,以 WritableWorkbook wb = Workbook.createWorkbook(file);  方式创建工作簿是创建了一个新的工作簿,如果file文件原来存在,那么它的数据将会失去,下一个例子将会讲解怎样更新一个Excel表格。 还有就是在工作簿关闭之前要把数据写入工作簿中,也就是 wb.write();。

        更新Excel表格数据:

[java]  view plain  copy import java.io.File;   import java.io.IOException;   import jxl.Workbook;   import jxl.read.biff.BiffException;   import jxl.write.Label;   import jxl.write.WritableSheet;   import jxl.write.WritableWorkbook;   import jxl.write.WriteException;      /**   *   * @author yrs   */   public class TUpdate {              public static void update (WritableWorkbook wb) throws WriteException {           WritableSheet sheet = wb.createSheet("第二页"1);           sheet.addCell(new Label(0,0,"第二页更新数据"));                  }              public static void main(String [] args) throws IOException, BiffException, WriteException  {           try {               //文件D://JEtest//read.xls 要存在,并且含有数据。               File file = new File("D://JEtest//update.xls");               //得到工作簿               Workbook book = Workbook.getWorkbook(file);                //创建一个可写工作簿               WritableWorkbook wb = Workbook.createWorkbook(file, book);               TUpdate.update(wb);               wb.write();               wb.close();               book.close();                       }catch (IOException | BiffException | WriteException e) {               System.out.println("Exception:  " + e);               throw e;           }       }     }  
转载请注明原文地址: https://www.6miu.com/read-18895.html

最新回复(0)