excel在android读取,写入,更新数据

本文介绍了一个Java程序示例,展示了如何创建、读取和更新Excel文件。包括使用jxl库创建新的Excel文件、读取现有Excel文件的内容,并通过复制和覆盖的方法实现Excel文件的数据更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值