一、引入所需依赖
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表相关推荐

  1. 前端利用JS导出数据到Excel表 数字是文本类型 无法计算

    问题描述:前端利用JS导出数据到Excel表 数字是文本类型 无法进行公式计算:前端利用JS导出数据到Excel表 数字是文本类型 无法计算 解决办法:参考https://bbs.csdn.net/t ...

  2. JS 打印 data数据_小程序导出数据到excel表

    小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...

  3. django 导出数据到excel表 导出excel表到目标路径及客户端下载

    python导出excel表利用的是xlwt模块 学习的网址 大佬教学网址 导出数据到excel表 下面是代码 import os from xlwt import Workbook from inf ...

  4. arcengine遍历属性表_【程序之坑】小程序云开发导出数据到excel表

    本文解决了小程序云开发导出数据到excel的bug,并给出了分析的过程,同时简化了程序为一个云函数,一个本地函数,逻辑更简单.文章结尾给出了完整源代码 小程序云开发为没有服务器的小程序开发者提供了便利 ...

  5. 导出测试点的信号名_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...

    我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...

  6. c#后台如何导出excel到本地_小程序导出数据到excel表,借助云开发后台实现excel数据的保存...

    我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...

  7. js实现excel块拖拉数据_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...

    我们在做小程序开发的过程中,可能会有这样的需求,就是把我们云数据库里的数据批量导出到excel表里.如果直接在小程序里写是实现不了的,所以我们要借助小程序的云开发功能了.这里需要用到云函数,云存储和云 ...

  8. 小程序导出数据到excel表,借助云开发后台实现excel数据的保存

    目录 老规矩,先看效果图 实现思路 一,创建excel云函数 二,读取云数据库里的数据 三,安装生成excel文件的类库 node-xlsx 四,编写把数据保存到excel的代码, 五,把excel存 ...

  9. arcengine遍历属性表_小程序导出数据到excel表

    老规矩,先看效果图 上图就是我们保存用户数据到excel生成的excel文件. 实现思路 1,创建云函数 2,在云函数里读取云数据库里的数据 3,安装node-xlsx类库(node类库) 4,把云数 ...

最新文章

  1. 关于 智能指针 的线程安全问题
  2. 微信公众号可快速创建“门店小程序” 不用开发
  3. mysql 事务处理
  4. shujufenxi:一组数据透视复工复产“进度条”
  5. agv调度matlab程序,AGV调度方法入门
  6. MySQL 中 count(*) 和 count(1) 有什么区别?哪个性能最好?
  7. 微服务-从设计到部署
  8. Python 测试驱动开发(五)测试数据库(上)
  9. find命令 文件名后缀
  10. php编写数据库配置文件,通用php与mysql数据库配置文件
  11. [转载] 使用 Python 实现鼠标键盘自动化
  12. hdu-5992 Finding Hotels(kd-tree)
  13. visual assist x vs2019番茄助手
  14. 测试网速wifi软件,测网速工具 一键wifi测速
  15. php 100元 换算,货币换算的PHP脚本
  16. 心理学当中一些很有用的定律
  17. Bochs、虚拟软盘与BootLoader
  18. 日元兑人民币用计算机怎么算,日元兑换人民币是以什么计算?谢谢我有日元 – 手机爱问...
  19. 智能巡检系统:企业安全生产管理的智能助手
  20. AIoT(人工智能+物联网)知识总结+实战项目

热门文章

  1. 最大规模技术重建:数据库连接从15000个到100个以下
  2. VC++6.0安装教程
  3. 几何画板如何隐藏坐标轴上的刻度
  4. 经济专业技术资格考试-经济专业技术资格分为初级、中级、高级三个级别
  5. 信号处理基础1:谐波、带宽、傅里叶、小波、分贝
  6. 计算机键盘功能教案,计算机基础教案2(键盘鼠标操作).doc
  7. php100 2012视频教程 汽车维修 C#高级编程视频教程 服装设计 时尚类视频教程分享 持续更新中~~
  8. PF_RING开发指南
  9. 计算机工程与应用陶小雪,计算机工程与应用杂志论文发表
  10. 三国赵云传1---加血代码