Android使用jxl快速生成Excel表
super.onCreate();//模拟数据集合students = new ArrayList<Strudent>();for (int i = 1; i <= 10; i++) { students.add(new Strudent("小红"+i,"女","1"+i)); }exportExcel(this);
/** * 导出excel * @param view */public void exportExcel(App app) { file = new File(getSDPath() + "/Record"); makeDir(file); ExcelUtil.initExcel(file.toString() + "/成绩表.xls", title); fileName = getSDPath() + "/Record/成绩表.xls"; System.out.println("=======================" + fileName);ExcelUtil.writeObjListToExcel(getRecordData(), fileName, this); }/** * 将数据集合 转化成ArrayList<ArrayList<String>> * @return */private ArrayList<ArrayList<String>> getRecordData() { recordList = new ArrayList(); for (int i = 0; i <students.size(); i++) { Strudent student = students.get(i); ArrayList<String> beanList = new ArrayList<String>();beanList.add(student.id); beanList.add(student.name);beanList.add(student.sex); recordList.add(beanList); } return recordList; } private String getSDPath() {File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED); if (sdCardExist) { sdDir = Environment.getExternalStorageDirectory(); } String dir = sdDir.toString(); return dir; } public void makeDir(File dir) {if (!dir.getParentFile().exists()) {makeDir(dir.getParentFile()); } dir.mkdir(); }
https://www.jianshu.com/p/d3d40a69a9b1
package com.hg.excel;import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List;import android.content.Context; import android.widget.Toast;import jxl.Workbook; import jxl.WorkbookSettings; import jxl.format.Colour; import jxl.write.Label; import jxl.write.WritableCell; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException;public class ExcelUtil {public static WritableFont arial14font = null; public static WritableCellFormat arial14format = null; public static WritableFont arial10font = null; public static WritableCellFormat arial10format = null; public static WritableFont arial12font = null; public static WritableCellFormat arial12format = null; public final static String UTF8_ENCODING = "UTF-8"; public final static String GBK_ENCODING = "GBK";/** * 单元格的格式设置 字体大小 颜色 对齐方式、背景颜色等... */ public static void format() { try { arial14font = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD); arial14font.setColour(jxl.format.Colour.LIGHT_BLUE); arial14format = new WritableCellFormat(arial14font); arial14format.setAlignment(jxl.format.Alignment.CENTRE); arial14format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); arial14format.setBackground(jxl.format.Colour.VERY_LIGHT_YELLOW); arial10font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD); arial10format = new WritableCellFormat(arial10font); arial10format.setAlignment(jxl.format.Alignment.CENTRE); arial10format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); arial10format.setBackground(Colour.GRAY_25); arial12font = new WritableFont(WritableFont.ARIAL, 10); arial12format = new WritableCellFormat(arial12font); arial10format.setAlignment(jxl.format.Alignment.CENTRE);//对齐格式 arial12format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); //设置边框 } catch (WriteException e) {e.printStackTrace(); } } /** * 初始化Excel * @param fileName * @param colName */ public static void initExcel(String fileName, String[] colName) { format(); WritableWorkbook workbook = null; try { File file = new File(fileName); if (!file.exists()) {file.createNewFile(); } workbook = Workbook.createWorkbook(file); WritableSheet sheet = workbook.createSheet("成绩表", 0); //创建标题栏 sheet.addCell((WritableCell) new Label(0, 0, fileName,arial14format)); for (int col = 0; col < colName.length; col++) {sheet.addCell(new Label(col, 0, colName[col], arial10format)); } sheet.setRowView(0,340); //设置行高 workbook.write(); } catch (Exception e) {e.printStackTrace(); } finally {if (workbook != null) {try {workbook.close(); } catch (Exception e) {e.printStackTrace(); } } } } @SuppressWarnings("unchecked") public static <T> void writeObjListToExcel(List<T> objList,String fileName, Context c) {if (objList != null && objList.size() > 0) {WritableWorkbook writebook = null; InputStream in = null; try { WorkbookSettings setEncode = new WorkbookSettings(); setEncode.setEncoding(UTF8_ENCODING); in = new FileInputStream(new File(fileName)); Workbook workbook = Workbook.getWorkbook(in); writebook = Workbook.createWorkbook(new File(fileName),workbook); WritableSheet sheet = writebook.getSheet(0); // sheet.mergeCells(0,1,0,objList.size()); //合并单元格 // sheet.mergeCells() for (int j = 0; j < objList.size(); j++) {ArrayList<String> list = (ArrayList<String>) objList.get(j); for (int i = 0; i < list.size(); i++) { sheet.addCell(new Label(i, j + 1, list.get(i),arial12format)); if (list.get(i).length() <= 5){ sheet.setColumnView(i,list.get(i).length()+8); //设置列宽 }else { sheet.setColumnView(i,list.get(i).length()+5); //设置列宽 } } sheet.setRowView(j+1,350); //设置行高 } writebook.write(); Toast.makeText(c, "导出到手机存储中文件夹Record成功", Toast.LENGTH_SHORT).show(); } catch (Exception e) {e.printStackTrace(); } finally {if (writebook != null) {try { writebook.close(); } catch (Exception e) { e.printStackTrace(); } } if (in != null) {try { in.close(); } catch (IOException e) {e.printStackTrace(); } } } } } } // } // } // } // } // } // // // // //}
private ArrayList<ArrayList<String>> recordList; private List<Strudent> students; private static String[] title = { "编号","姓名","性别","年龄","班级","数学","英语","语文" }; private File file; private String fileName;
转载于:https://www.cnblogs.com/BelieveFish/p/11113558.html
Android使用jxl快速生成Excel表相关推荐
- jxl 新版电子表格_Android使用jxl快速生成Excel表
前言 在Android开发时,有些时候需要把app中List集合数据,导出到Excel表中,方便进一步操作.Android可以使用jxl或poi来导出Excel,关于jxl和poi的比较网上有很多说法 ...
- Android使用jxl快速导出Excel表格
公司有个项目是需要把数据导出Excel表格的,最初是使用的poi来导出的,把poi的jar包放进去后出现各种各样的问题,实在麻烦,然后在网上继续找有没有简单的,就找到了jxl,个人感觉操作确实和网上说 ...
- 性能碾压 POI !利用模板语法快速生成 Excel 报表
本期讲师:刘鹏 GcExcel项目组,核心开发者 Hello,大家好,本期葡萄城技术公开课,将由我来为大家带来<性能碾压 POI !利用模板语法快速生成 Excel 报表>的技术分享. 本 ...
- 根据数据库表结构生成Excel表设计——源码设计说明
根据数据库表结构生成Excel表设计 在系统运维的过程中,很多时候大家都不喜欢改文档,修改了数据库字段后很少同步再更新表设计文档的,这就导致系统运行一段时间后,系统表设计与实际生产跑业务的设计出入很大 ...
- EasyExcel 快速生成Excel工具的使用
EasyExcel 快速生成Excel工具的使用 前言 当我从数据库查询到数据,如何将它变成Excel表格的形式展示 一个简单的导出模板如下 导入依赖 <!-- easyexcel-->& ...
- ASP程序快速生成Excel文件
ASP程序快速生成Excel文件 在一个web项目中,要求将数据生成Excel文件保存到本地,最早使用的方法是直接使用Microsoft的Office Web组件,但是总体感觉是慢(微软的通病).然后 ...
- 分别使用liunx,windows命令和android代码,快速生成facebook密钥散列
安卓集成facebook并且上传应用到facebook中,需要在facebook后台填入facebook的密钥散列,这里分别使用liunx,windows命令和android代码,快速生成facebo ...
- python+shell 批量获取服务器信息并且生成excel表
我们工作中,经常需要获取服务器的一些信息,包括软件的和硬件的.例如刚刚接收的服务器,需要批量获取信息确认硬件配置是否符合我们需求,或者维护很长时间的服务器,中间变动了很多,但是服务器信息没有更改,这个 ...
- php提交表单到excel,使用php生成excel表单使用很少的非可编辑单元格
我想使用php生成excelsheet,那么哪种方法或代码更适合用于生成动态excelsheet?请查看屏幕截图,以了解我面临的问题. screenshot of required excel she ...
最新文章
- 下推自动机详讲 包含Java实现 Pushdown Automata (PDA)
- 微软获GPT-3独家授权,OpenAI创始人马斯克:与初衷相悖
- TCP三次握手与四次挥手
- BZOJ-1257-[CQOI2007]余数之和sum
- 第二章:Android系统与嵌入式开发读书笔记
- 适合自学python的图书-清华学霸整理,Python入门到精通这几本书帮你快速入行
- Spring中 @Autowired注解与@Resource注解的区别
- CSS之media Query
- $(document).ready()与window.onload的区别
- 算法不会,尚能饭否之排序——插入排序法(用链表实现)
- kafka jar包_Windows环境下Flink消费Kafka实现热词统计
- [Jsoi2010]连通数
- Android使用TextToSpeech(TTS)实现文字转语音合成播放
- Android车机之TextToSpeech
- python股票量化如何选股?
- 已知一/27网络中有一个地址是167.199.170.82,问这个网络的网络掩码、网络前缀长度和网络后缀长度是多少,求这个地址块的地址数、首地址以及末地址是多少
- face_recognition IndexError: list index out of range
- 《铁路竹枝词四首》_文若
- Java的JVM运行时栈结构和方法调用详解
- Google Protobuf编解码(序列化/反序列化)框架