android excel读写

1.先定义一个结构,用来存放单元格的属性。

  

private class CurCell{
		int row;
		int col;
		String content;
	}

 2.定义一个ArrayList用来存放excel中的内容.

  

private ArrayList<CurCell> mArrayList = new ArrayList<MainActivity.CurCell>();

 3.读取excel中的内容(excel的Assets中)。

   

private void ReadExcel(String fileName){
		try {
			InputStream mInputStream = getResources().getAssets().open(fileName);
			Workbook wb = Workbook.getWorkbook(mInputStream); 
			Sheet mSheet = wb.getSheet(0);
			int row = mSheet.getRows();
			int columns = mSheet.getColumns();
			Log.i("W","Total Row: " + row + ", Total Columns: " + columns);
			for(int i= 0 ; i < row ; i ++){
				int cols = mSheet.getRow(i).length;
				for(int j = 0 ; j < cols ; j ++){
					Cell temp = mSheet.getCell(j, i);
					String content = temp.getContents();
					Log.i("W",j + " ," + i + " ," + content);
					CurCell mCell = new CurCell();
					mCell.row = i;
					mCell.col = j;
					mCell.content = content;
					mArrayList.add(mCell);
				}
			}
			wb.close();
			mInputStream.close();
		} catch (BiffException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IndexOutOfBoundsException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

 4.写excel文件。

   

private void WriteExcel(){
		try {
			WritableWorkbook mWorkbook = Workbook.createWorkbook(new File("/mnt/sdcard/test.xls"));
			WritableSheet mSheet = mWorkbook.createSheet("hello", 0);
			WritableSheet mSheet2 = mWorkbook.createSheet("test", 2);
			for(CurCell mCurCell : mArrayList){
				Label mLabel = new Label(mCurCell.col, mCurCell.row, mCurCell.content);
				mSheet.addCell(mLabel);
			}
			int row = mArrayList.get(mArrayList.size() - 1).row;
			int col = mArrayList.get(mArrayList.size() - 1).col;
			jxl.write.Number number = new jxl.write.Number(col,row,55.123);
			mSheet2.addCell(number);
			mWorkbook.write();
			mWorkbook.close();
		} catch (RowsExceededException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (WriteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

 5.更新单元格的内容。

 

private void UpdateExcel(){
		try {
			Workbook mWorkbook = Workbook.getWorkbook(new File("/mnt/sdcard/test.xls"));
			WritableWorkbook mWritableWorkbook = Workbook.createWorkbook(new File("/mnt/sdcard/test.xls"), mWorkbook);
			WritableSheet mWritableSheet = mWritableWorkbook.getSheet(0);
			WritableCell mWritableCell = mWritableSheet.getWritableCell(1, 0);
			Label mLabel = (Label)mWritableCell;
			mLabel.setString("modify");
			mWritableWorkbook.write();
			mWritableWorkbook.close();
			mWorkbook.close();
		} catch (BiffException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (WriteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值