0基础用android做一个excel表查询器(2):编写程序

0基础用android做一个Excel表查询器(2):编写程序

编完页面下面就该开始写程序了,首先确定一下思路,很简单,将Excel表写入一个List(或数组)里,然后获取Plain Text中写入的内容,然后与List里的内容进行比对,发现包含关系就输出。
首先是控件程序的编写,编写页面时候每个控件都有一个id,我写的是tv_text和tv_answer1,命名当然是随便了,不过一般会命名为tv 后面跟上具体想实现的功能,首先在程序中对控件进行调用`

question = findViewById(R.id.tv_text);
answer = findViewById(R.id.tv_answer1);

然后你如果需要读取输入的内容,就

question.getText();

而要写内容,就

answer.setText();

好,既然这些都完成了,剩下就读Excel就完了
首先安装jar包,主要用到的就是poi包,安装jar包主有两种方法,第一种就是网上直接下载,然后拖到libs下,然后点击右上角的Project Structure
在这里插入图片描述
然后点Dependencies,加号下的Jar Dependency然后加入你的包即可
在这里插入图片描述

另一种就是直接点Library Dependency然后查询你要的库(只能全名查找)
载入库后我们开始编写函数,直接new class,写好类名和函数名。
主要用到的是这些函数。

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

第一步就是建一个文件流,说实在的在这走了很多弯路,因为之前没用过java。

FileInputStream input = new FileInputStream(new File("/storage/emulated/0/1/data.xls"));

其中/storage/emulated/0代表手机内存。
建完后新建workbook,其中xlsx是XSSF,xls是HSSF。
getSheet指Excel表的sheet几,从0开始,如果有多个sheet就getNumberOfSheets然后再for一下。

HSSFWorkbook wb = null;
wb = new HSSFWorkbook(input);
HSSFSheet hssfSheet = wb.getSheetAt(0);

之后就是两个for读数据

for (int rowNum =0; rowNum <=hssfSheet.getLastRowNum(); rowNum++) {
    HSSFRow hssfRow = hssfSheet.getRow(rowNum);
    	if (hssfRow != null) {
    		int minColIx = hssfRow.getFirstCellNum();
		int maxColIx = hssfRow.getLastCellNum();
			for (int colIx = minColIx; colIx < maxColIx; colIx++) {
    				HSSFCell cell = hssfRow.getCell(colIx);
   					 if (cell!= null) {
   					 	cell.setCellType(Cell.CELL_TYPE_STRING);
						String content = cell.getStringCellValue();

cell转String的话也可以直接.toString,然后将数据存到List中就行了,之后就是调用函数以及判断,判断包含关系可以用contains,然后就可以将整行输出,
结果如下(这里网上随便找了一个题库举例):
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值