Android上进行大量数据分析和比对的时候,自动化想的尤为必要。而大量的基准数据多以Excel的形式展示,所以利用Android App进行Excel的解析很有价值。
■解析Excel依赖的Jar包
JXL工具包。对中文,日文支持非常好,内存消耗较小,操作简单。
POI工具包。功能更强大,效率高,但不稳定,容易内存溢出,代码不能跨平台。
--------------------------------------------------------------------------------------------------------
以JXL工具包为例,简单介绍JXL工具的使用。
■读取现有Excel
File file = new File(FILE_NAME);
Workbook book = Workbook.getWorkbook(file);
Sheet sheet = workBook.getSheet(0);
book.close();
■获取sheet中行数列数
int rowCount = workSheet.getRows();
int columnCount = workSheet.getColumns();
■获取指定单元格内容
workSheet.getCell(j, i).getContents();//以String类型输入
■创建Excel
File file = new File(REPORT_FILE);
WritableWorkbook book = Workbook.createWorkbook(file);
WritableSheet sheet = book.createSheet("sheetName", 0);
book.close();
■创建指定单元格
Label label = new Label(0, 0, "NO.");
sheet.addCell(label);
book.write();
■合并单元格
WritableSheet.mergeCells(int m,int n,int p,int q);
■插入图片至单元格
File picFile=new File(PIC_PATH);
WritableImage image=new WritableImage(startColumnIndex, startRowIndex, ColumnSpace, RowSpace, picFile);
sheet.addImage(image);
book.write();
■修改列宽行高
//设置某列宽为20
writableSheet.setColumnView(j, 20);
//设置某行宽为150
sheet.setRowView(i,150);
■修改单元格样式
WritableFont writableFont = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
WritableCellFormat writableCellFormat = new WritableCellFormat(writableFont);
writableCellFormat.setBackground(Colour.RED);
//新建label对象的时候,增加WritableCellFormat的参数,用以指定格式
Label label = new Label(0, 0, "NO.", writableCellFormat);
備考:其他诸如修改字体,字体色,下划线等可以修改WritableFont对象的其他参数,不再赘述。
------------------------------------------------------------------------------------------------------------
以上是关于Excel的基本操作,其他的操作譬如用哪种数据结构保存Excel数据都是比较有意思的地方。
自己来说,List和HashMap都用过,List查找比较耗时,而HashMap以键值查找相对快捷。