ReadExcel.java文件: 
Java代码  
  1. public class ReadExcel extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     @Override  
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setContentView(R.layout.main);  
  7.         // createExcel();  
  8.         // readExcel();  
  9.         writeExcel("mnt/sdcard/test.xls");  
  10.     }  
  11.   
  12.     public void readExcel() {  
  13.         try {  
  14.   
  15.             /** 
  16.              * 后续考虑问题,比如Excel里面的图片以及其他数据类型的读取 
  17.              **/  
  18.             InputStream is = new FileInputStream("mnt/sdcard/test.xls");  
  19.   
  20.             Workbook book = Workbook  
  21.                     .getWorkbook(new File("mnt/sdcard/test.xls"));  
  22.             book.getNumberOfSheets();  
  23.             // 获得第一个工作表对象  
  24.             Sheet sheet = book.getSheet(0);  
  25.             int Rows = sheet.getRows();  
  26.             int Cols = sheet.getColumns();  
  27.             System.out.println("当前工作表的名字:" + sheet.getName());  
  28.             System.out.println("总行数:" + Rows);  
  29.             System.out.println("总列数:" + Cols);  
  30.             for (int i = 0; i < Cols; ++i) {  
  31.                 for (int j = 0; j < Rows; ++j) {  
  32.                     // getCell(Col,Row)获得单元格的值  
  33.                     System.out  
  34.                             .print((sheet.getCell(i, j)).getContents() + "\t");  
  35.                 }  
  36.                 System.out.print("\n");  
  37.             }  
  38.             // 得到第一列第一行的单元格  
  39.             Cell cell1 = sheet.getCell(00);  
  40.             String result = cell1.getContents();  
  41.             System.out.println(result);  
  42.             book.close();  
  43.         } catch (Exception e) {  
  44.             System.out.println(e);  
  45.         }  
  46.     }  
  47.   
  48.     public void createExcel() {  
  49.         try {  
  50.             // 创建或打开Excel文件  
  51.             WritableWorkbook book = Workbook.createWorkbook(new File(  
  52.                     "mnt/sdcard/test.xls"));  
  53.   
  54.             // 生成名为“第一页”的工作表,参数0表示这是第一页  
  55.             WritableSheet sheet1 = book.createSheet("第一页"0);  
  56.             WritableSheet sheet2 = book.createSheet("第三页"2);  
  57.   
  58.             // 在Label对象的构造函数中,元格位置是第一列第一行(0,0)以及单元格内容为test  
  59.             Label label = new Label(00"test");  
  60.   
  61.             // 将定义好的单元格添加到工作表中  
  62.             sheet1.addCell(label);  
  63.   
  64.             /* 
  65.              * 生成一个保存数字的单元格.必须使用Number的完整包路径,否则有语法歧义 
  66.              */  
  67.             jxl.write.Number number = new jxl.write.Number(10555.12541);  
  68.             sheet2.addCell(number);  
  69.   
  70.             // 写入数据并关闭文件  
  71.             book.write();  
  72.             book.close();  
  73.         } catch (Exception e) {  
  74.             System.out.println(e);  
  75.         }  
  76.     }  
  77.   
  78.     /** 
  79.      * jxl暂时不提供修改已经存在的数据表,这里通过一个小办法来达到这个目的,不适合大型数据更新! 这里是通过覆盖原文件来更新的. 
  80.      *  
  81.      * @param filePath 
  82.      */  
  83.     public void updateExcel(String filePath) {  
  84.         try {  
  85.             Workbook rwb = Workbook.getWorkbook(new File(filePath));  
  86.             WritableWorkbook wwb = Workbook.createWorkbook(new File(  
  87.                     "d:/new.xls"), rwb);// copy  
  88.             WritableSheet ws = wwb.getSheet(0);  
  89.             WritableCell wc = ws.getWritableCell(00);  
  90.             // 判断单元格的类型,做出相应的转换  
  91.             Label label = (Label) wc;  
  92.             label.setString("The value has been modified");  
  93.             wwb.write();  
  94.             wwb.close();  
  95.             rwb.close();  
  96.         } catch (Exception e) {  
  97.             e.printStackTrace();  
  98.         }  
  99.     }  
  100.   
  101.     public static void writeExcel(String filePath) {  
  102.         try {  
  103.             // 创建工作薄  
  104.             WritableWorkbook wwb = Workbook.createWorkbook(new File(filePath));  
  105.             // 创建工作表  
  106.             WritableSheet ws = wwb.createSheet("Sheet1"0);  
  107.             // 添加标签文本  
  108.             // Random rnd = new Random((new Date()).getTime());  
  109.             // int forNumber = rnd.nextInt(100);  
  110.             // Label label = new Label(0, 0, "test");  
  111.             // for (int i = 0; i < 3; i++) {  
  112.             // ws.addCell(label);  
  113.             // ws.addCell(new jxl.write.Number(rnd.nextInt(50), rnd  
  114.             // .nextInt(50), rnd.nextInt(1000)));  
  115.             // }  
  116.             // 添加图片(注意此处jxl暂时只支持png格式的图片)  
  117.             // 0,1分别代表x,y 2,5代表宽和高占的单元格数  
  118.             ws.addImage(new WritableImage(5525new File(  
  119.                     "mnt/sdcard/nb.png")));  
  120.             wwb.write();  
  121.             wwb.close();  
  122.         } catch (Exception e) {  
  123.             System.out.println(e.toString());  
  124.         }  
  125.     }  
  126. }  
/Files/foura/jxl.7z

    posted on 2011-04-15 09:38  kitea  阅读(18747)  评论(14编辑  收藏  举报