Android导出数据到Excel表
一、引入所需依赖
implementation 'org.apache.poi:poi:3.17'
二、常用方法介绍
public class DownloadToExcelFile {public void download(Context context){HSSFWorkbook hssfWorkbook = new HSSFWorkbook();//建一个SheetHSSFSheet sheet = hssfWorkbook.createSheet();//HSSFSheet sheet = wb.createSheet("可以在这里指定名称");//====================================设置属性===============================================//设置列宽sheet.setColumnWidth(0,2000);//(第几列,多宽)sheet.setColumnWidth(1,7000);//(第几列,多宽)sheet.setColumnWidth(2,7000);//(第几列,多宽)sheet.setColumnWidth(3,7000);//(第几列,多宽)HSSFFont txtStyle = hssfWorkbook.createFont(); //字体格式设置对象txtStyle.setFontName("黑体"); // 设置字体黑体txtStyle.setBold(true); // 字体加粗txtStyle.setFontHeightInPoints(( short ) 16 ); // 设置字体大小txtStyle.setColor(HSSFFont.COLOR_RED);//字体颜色HSSFCellStyle cellStyle = hssfWorkbook.createCellStyle(); // 生成行格式设置对象cellStyle.setBorderBottom(BorderStyle.THIN);// 下边框cellStyle.setBorderLeft(BorderStyle.THIN);// 左边框cellStyle.setBorderRight(BorderStyle.THIN);// 右边框cellStyle.setBorderTop(BorderStyle.THIN);// 上边框cellStyle.setAlignment(HorizontalAlignment.CENTER); // 横向居中对齐cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 纵向居中对齐cellStyle.setFont(txtStyle);//设置字体属性//====================================写入数据===============================================HSSFRow row1 = sheet.createRow(0);//第1行(参数:行)row1.setHeight((short) 500);//设置行高(参数:高度)HSSFCell cell0=row1.createCell(0);//第1格HSSFCell cell1=row1.createCell(1);//第2格HSSFCell cell2=row1.createCell(2);//第3格HSSFCell cell3=row1.createCell(3);//第4格//设置格子属性样式cell0.setCellStyle(cellStyle);cell1.setCellStyle(cellStyle);cell2.setCellStyle(cellStyle);cell3.setCellStyle(cellStyle);//设置格子 数据值cell0.setCellValue("第1格内容");cell1.setCellValue("第2格内容");cell2.setCellValue("第3格内容");cell3.setCellValue("第4格内容");//====================================写入本地文件===============================================String filePath = "/sdcard/Record/";String fileName = "我的文件名"+getNowTime()+".xls";String resultPath=filePath+fileName;File file = new File(resultPath);//判断文件是否存在,不存在则创建if (!file.exists()) {try {file.createNewFile();} catch (IOException e) {e.printStackTrace();}}try {FileOutputStream fileOutputStream=new FileOutputStream(resultPath);hssfWorkbook.write(fileOutputStream);fileOutputStream.close();Toast.makeText(context,"下载成功", Toast.LENGTH_SHORT).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private String getNowTime(){Date time=new Date();SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMddHHmmss");return sdf.format(time);}}
三、写一个实现案例
(1) 最终效果
(2)我们有一个实体类
public class MyBean {int id;//序号String weighValue;//大象体重String time;//称重时间String date;//称重日期public int getId() {return id;}public void setId(int id) {this.id = id;}public String getWeighValue() {return weighValue;}public void setWeighValue(String weighValue) {this.weighValue = weighValue;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}}
(3)数据下载类实现
import android.content.Context;
import android.util.Log;
import android.widget.Toast;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;public class DownloadDataUtil {public void download(Context context, List<MyBean> list){HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet();//设置列宽sheet.setColumnWidth(0,2000);sheet.setColumnWidth(1,7000);sheet.setColumnWidth(2,7000);sheet.setColumnWidth(3,7000);//=================================定义表头属性===============================================HSSFFont font = wb.createFont(); // 生成字体格式设置对象font.setFontName("黑体"); // 设置字体黑体font.setBold(true); // 字体加粗font.setFontHeightInPoints(( short ) 16 ); // 设置字体大小font.setColor(HSSFFont.COLOR_NORMAL);//字体颜色HSSFCellStyle cellStyle = wb.createCellStyle(); // 生成行格式设置对象cellStyle.setBorderBottom(BorderStyle.THIN);// 下边框cellStyle.setBorderLeft(BorderStyle.THIN);// 左边框cellStyle.setBorderRight(BorderStyle.THIN);// 右边框cellStyle.setBorderTop(BorderStyle.THIN);// 上边框cellStyle.setAlignment(HorizontalAlignment.CENTER); // 横向居中对齐cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 纵向居中对齐cellStyle.setFont(font);//=================================定义内容属性===============================================HSSFFont txtContent = wb.createFont(); // 生成字体格式设置对象txtContent.setFontName("黑体"); // 设置字体黑体txtContent.setBold(false); // 字体加粗txtContent.setFontHeightInPoints(( short ) 12 ); // 设置字体大小txtContent.setColor(HSSFFont.COLOR_RED);//字体颜色HSSFCellStyle cellStyleContent = wb.createCellStyle(); // 生成行格式设置对象cellStyleContent.setBorderBottom(BorderStyle.THIN);// 下边框cellStyleContent.setBorderLeft(BorderStyle.THIN);// 左边框cellStyleContent.setBorderRight(BorderStyle.THIN);// 右边框cellStyleContent.setBorderTop(BorderStyle.THIN);// 上边框cellStyleContent.setAlignment(HorizontalAlignment.CENTER); // 横向居中对齐cellStyleContent.setVerticalAlignment(VerticalAlignment.CENTER); // 纵向居中对齐cellStyleContent.setFont(txtContent);//====================================写入数据===============================================for (int k=0;k<list.size()+1;k++){HSSFRow row = sheet.createRow(k);if (k==0){HSSFCell cell0=row.createCell(0);HSSFCell cell1=row.createCell(1);HSSFCell cell2=row.createCell(2);HSSFCell cell3=row.createCell(3);cell0.setCellStyle(cellStyle);cell1.setCellStyle(cellStyle);cell2.setCellStyle(cellStyle);cell3.setCellStyle(cellStyle);row.setHeight((short) 500);cell0.setCellValue("序号");cell1.setCellValue("大象体重");cell2.setCellValue("时间");cell3.setCellValue("日期");}else {HSSFCell cell0=row.createCell(0);HSSFCell cell1=row.createCell(1);HSSFCell cell2=row.createCell(2);HSSFCell cell3=row.createCell(3);cell0.setCellStyle(cellStyleContent);cell1.setCellStyle(cellStyleContent);cell2.setCellStyle(cellStyleContent);cell3.setCellStyle(cellStyleContent);row.setHeight((short) 500);cell0.setCellValue(list.get(k-1).getId());cell1.setCellValue(list.get(k-1).getWeighValue());cell2.setCellValue(list.get(k-1).getTime());cell3.setCellValue(list.get(k-1).getDate());}}String filePath = "/sdcard/Record/";String fileName = "我的文件名"+getNowTime()+".xls";String resultPath=filePath+fileName;File file = new File(resultPath);if (!file.exists()) {try {file.createNewFile();} catch (IOException e) {Log.e("fxHou","Create Fail IOException"+e);e.printStackTrace();}}try {FileOutputStream fileOutputStream=new FileOutputStream(resultPath);wb.write(fileOutputStream);fileOutputStream.close();Toast.makeText(context, "DOWNLOAD SUCCESS :"+resultPath, Toast.LENGTH_SHORT).show();} catch (FileNotFoundException e) {Log.e("fxHou","Download Fail FileNotFoundException"+e);e.printStackTrace();} catch (IOException e) {Log.e("fxHou","Download Fail IOException"+e);e.printStackTrace();}}private String getNowTime(){Date time=new Date();SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMddHHmmss");return sdf.format(time);}}
(4)调用
List<MyBean> list=new ArrayList<>();//曹冲称象数据
new DownloadDataUtil().download(mContext,list);
Android导出数据到Excel表相关推荐
- 前端利用JS导出数据到Excel表 数字是文本类型 无法计算
问题描述:前端利用JS导出数据到Excel表 数字是文本类型 无法进行公式计算:前端利用JS导出数据到Excel表 数字是文本类型 无法计算 解决办法:参考https://bbs.csdn.net/t ...
- JS 打印 data数据_小程序导出数据到excel表
小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...
- django 导出数据到excel表 导出excel表到目标路径及客户端下载
python导出excel表利用的是xlwt模块 学习的网址 大佬教学网址 导出数据到excel表 下面是代码 import os from xlwt import Workbook from inf ...
- arcengine遍历属性表_【程序之坑】小程序云开发导出数据到excel表
本文解决了小程序云开发导出数据到excel的bug,并给出了分析的过程,同时简化了程序为一个云函数,一个本地函数,逻辑更简单.文章结尾给出了完整源代码 小程序云开发为没有服务器的小程序开发者提供了便利 ...
- 导出测试点的信号名_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...
我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...
- c#后台如何导出excel到本地_小程序导出数据到excel表,借助云开发后台实现excel数据的保存...
我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...
- js实现excel块拖拉数据_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...
我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...
- 小程序导出数据到excel表,借助云开发后台实现excel数据的保存
目录 老规矩,先看效果图 实现思路 一,创建excel云函数 二,读取云数据库里的数据 三,安装生成excel文件的类库 node-xlsx 四,编写把数据保存到excel的代码, 五,把excel存 ...
- arcengine遍历属性表_小程序导出数据到excel表
老规矩,先看效果图 上图就是我们保存用户数据到excel生成的excel文件. 实现思路 1,创建云函数 2,在云函数里读取云数据库里的数据 3,安装node-xlsx类库(node类库) 4,把云数 ...
最新文章
- 关于 智能指针 的线程安全问题
- 微信公众号可快速创建“门店小程序” 不用开发
- mysql 事务处理
- shujufenxi:一组数据透视复工复产“进度条”
- agv调度matlab程序,AGV调度方法入门
- MySQL 中 count(*) 和 count(1) 有什么区别?哪个性能最好?
- 微服务-从设计到部署
- Python 测试驱动开发(五)测试数据库(上)
- find命令 文件名后缀
- php编写数据库配置文件,通用php与mysql数据库配置文件
- [转载] 使用 Python 实现鼠标键盘自动化
- hdu-5992 Finding Hotels(kd-tree)
- visual assist x vs2019番茄助手
- 测试网速wifi软件,测网速工具 一键wifi测速
- php 100元 换算,货币换算的PHP脚本
- 心理学当中一些很有用的定律
- Bochs、虚拟软盘与BootLoader
- 日元兑人民币用计算机怎么算,日元兑换人民币是以什么计算?谢谢我有日元 – 手机爱问...
- 智能巡检系统:企业安全生产管理的智能助手
- AIoT(人工智能+物联网)知识总结+实战项目
热门文章
- 最大规模技术重建:数据库连接从15000个到100个以下
- VC++6.0安装教程
- 几何画板如何隐藏坐标轴上的刻度
- 经济专业技术资格考试-经济专业技术资格分为初级、中级、高级三个级别
- 信号处理基础1:谐波、带宽、傅里叶、小波、分贝
- 计算机键盘功能教案,计算机基础教案2(键盘鼠标操作).doc
- php100 2012视频教程 汽车维修 C#高级编程视频教程 服装设计 时尚类视频教程分享 持续更新中~~
- PF_RING开发指南
- 计算机工程与应用陶小雪,计算机工程与应用杂志论文发表
- 三国赵云传1---加血代码