Android创建保存Excel文件
Android开发生成保存Excel文件,首先下载两个jar包。下载地址:Android读写Excel文件的两个jar包资源-CSDN文库
poi-3.12-android-a.jar
poi-ooxml-schemas-3.12-20150511-a.jar
把jar包放在app的libs文件夹下,引用jar我一般都在build.gradle的dependencies中添加
implementation fileTree(dir: "libs", include: ["*.?ar"])
把.jar和.aar都引用上。
如果项目需要混淆,则加上混淆
#生成Excel
-keep class com.bea.xml.stream.** { *;}
-keep class com.wutka.dtd.** { *;}
-keep class org.** { *;}
-keep class aavax.xml.** { *;}
-keep class com.microsoft.schemas.office.x2006.** { *; }
-keep class schemaorg_apache_xmlbeans.** { *; }
-keep class schemasMicrosoftComOfficeExcel.** { *; }
-keep class schemasMicrosoftComOfficeOffice.** { *; }
-keep class schemasMicrosoftComVml.** { *; }
-keep class repackage.** { *; }
-keep class schemaorg_apache_xmlbeans.** { *; }
然后就是生成Excel文件了
/*** 创建excel分析结果文件*/private void createExcel(){new Thread(){@Overridepublic void run() {try {Log.i("lllllll", "createExcel ======");XSSFWorkbook workbook = new XSSFWorkbook();XSSFSheet sheet = workbook.createSheet(WorkbookUtil.createSafeSheetName("sheet"));//第一行Row row0 = sheet.createRow(0);String[] title = new String[]{"市公司", "道路名称", "路段长度(米)", "计算值", "起始经纬度", "结束经纬度"};for (int i= 0;i<title.length;i++){Cell cell = row0.createCell(i);cell.setCellValue(title[i]);}//添加数据for (int i= 0;i<excelBeans.size();i++){ExcelBean eb = excelBeans.get(i);Row row = sheet.createRow(i+1);for (int j= 0;j<title.length;j++){Cell cell = row.createCell(j);if (j == 0){cell.setCellValue(eb.getCity());}else if (j == 1){cell.setCellValue(eb.getAddress());}else if (j == 2){double distance = DistanceUtil.getDistance(eb.getStartLatLng(), eb.getStopLatLng());cell.setCellValue(NumberUtils.makeNumDecimalPlaces(distance, 2));}else if (j == 3){cell.setCellValue(eb.getCoverage());}else if (j == 4){cell.setCellValue("["+eb.getStartLatLng().longitude + ","+eb.getStartLatLng().latitude+"]");}else if (j == 5){cell.setCellValue("["+eb.getStopLatLng().longitude + ","+eb.getStopLatLng().latitude+"]");}}}String path = parseFile.getAbsolutePath();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");String time = dateFormat.format(new Date());analysisFilePath = path.replace(".csv", "_analysis_"+earfcn+"_"+time+".xlsx");Log.i("lllllll", "fileName ======" +analysisFilePath);FileOutputStream fos = new FileOutputStream(analysisFilePath);workbook.write(fos);fos.flush();fos.close();Log.i("lllllll", "保存成功 ======");}catch (Exception e){e.printStackTrace();}}}.start();}
我这生成Excel之后,在手机里能打开,但是在电脑上只能用WPS打开,用offic打开就会报错。我查了半天,最终没有找到问题在哪。有可能是我电脑上的offic版本太低了,不过WPS能打开已经能满足需求了。
相关文章:
Android创建保存Excel文件
Android开发生成保存Excel文件,首先下载两个jar包。下载地址:Android读写Excel文件的两个jar包资源-CSDN文库 poi-3.12-android-a.jar poi-ooxml-schemas-3.12-20150511-a.jar 把jar包放在app的libs文件夹下,引用jar我一般都在build.gradle的…...
Selenium + Django + Echarts 实现亚马逊商品数据可视化爬虫项目
最近完成了1个爬虫项目,记录一下自己的心得。 项目功能简介 根据用户输入商品名称、类别名称,使用Selenium, BS4等技术每天定时抓取亚马逊商品数据,使用Pandas进行数据清洗后保存在MySql数据库中. 使用Django提供用户端功能,显…...
【深度学习】初识深度学习
初识深度学习 什么是深度学习 关系: #mermaid-svg-7QyNQ1BBaD6vmMVi {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7QyNQ1BBaD6vmMVi .error-icon{fill:#552222;}#mermaid-svg-7QyNQ1BBaD6vmMVi .err…...
探索 Xind3 生态系统,解锁铭文资产的新玩法
铭文市场的兴起,不仅是新资产发行方案向市场的代表,更是新资产革命的代表。通过“公平启动”的方式,任何人都可以按照先到先得的原则“铸造”资产。虽然这看起来是意识形态上的新升级,但实际上最火的铭文风潮是由CEX引发的。 我们…...
js有哪些内置对象?
在 JavaScript 中,内置对象可以分为三类:原始值的包装对象、构造函数和其他对象。这里列举一些常见的内置对象及其方法: 原始值的包装对象: String:字符串类型的包装对象,有 charAt、concat、indexOf、repl…...
拦截器的简单使用
拦截器的简单使用 拦截器的使用创建拦截器preHandle 目标方法执行前执行postHandle 目标方法执行后执行afterCompletion 视图渲染后执行 拦截器使用场景返回值注册拦截器运用拦截器 拦截器的使用 创建拦截器 首先,我们需要创建一个拦截器器的类,并且需要继承自HandlerIntercep…...
【gmsh源码阅读】OCC对象绑定tag及获取几何与网格映射关系
一、Tag是什么? gmsh中的几何模型相对于OCC的模型增加了id编号,也叫tag,在gmsh中可以显示出来。在gmsh中,点、线、面、体都有Tag,以方便对其查找定位查找。在OCC中TopoDS_Shape只有几何与拓扑结构,没有唯一…...
【RTP】webrtc 学习3: webrtc对h264的rtp解包
rtp_rtcp\source\video_rtp_depacketizer_h264.cc【RTP】webrtc 学习2: webrtc对h264的rtp打包 中分析了打包过程的代码,这样再来看解析过程的源码就容易多了:本代码主要基于m79,m98类似。这里注明了jitterbuffer 会再次 做 解析stap-a 变为NAL units解析ParseFuaNalu 第一…...
幻兽帕鲁服务器多少钱?4核16G支持32人在线吗?
4核16G服务器是幻兽帕鲁Palworld推荐的配置,阿里云和腾讯云均推出针对幻兽帕鲁的4核16G服务器,阿里云4核16G幻兽帕鲁专属服务器32元1个月、66元3个月,腾讯云4核16G14M服务器66元1个月、277元3个月、1584元一年。云服务器吧yunfuwuqiba.com分享…...
AD/DA(模数数模转换)
文章目录 前言一、介绍部分介绍AD/DA硬件电路模型硬件电路ADC模块DAC模块ADC0809DAC0832 运算放大器(运放)运放电路 DA原理两种不同的DA转换器 AD原理部分AD/DA性能指标XPT2046介绍主要功能XPT2046时序结构控制字节解释单端模式配置表 二、实例使用AD读取…...
Docker数据卷挂载(以容器化Mysql为例)
数据卷 数据卷是一个虚拟目录,是容器内目录与****之间映射的桥梁 在执行docker run命令时,使用**-v 本地目录:容器目录**可以完成本地目录挂载 eg.Mysql容器的数据挂载 1.在根目录root下创建目录mysql及三个子目录: cd ~ pwd m…...
YOLOv8-Seg改进:注意力系列篇 | non-local自注意力,助力小目标分割
🚀🚀🚀本文改进:non-local自注意力,助力小目标分割 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-seg; 2)模型创新,提升分割性能; 3)独家自研模块助力分割;…...
【Qt无门槛入门】信号以及信号机制及其常用控件(1)
信号与信号槽 信号源:由哪个控件发出的信号。 信号的类型:用户进行不同的操作,就可能出发不同的信号。 信号处理的方式:槽(slot)某个对象接收到这个信号之后,就会做一些相关的处理动作。但是Qt对象不会无故…...
【python】爬取百度热搜排行榜Top50+可视化【附源码】【送数据分析书籍】
英杰社区https://bbs.csdn.net/topics/617804998 一、导入必要的模块: 这篇博客将介绍如何使用Python编写一个爬虫程序,从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应,以及os模块处理文件和目录操…...
排序(插入排序)
现在,我们学习了之前数据结构的部分内容,即将进入一个重要的领域:排序,这是一个看起来简单,但是想要理清其中逻辑并不简单的内容,让我们一起加油把! 排序的概念及其运用 排序的概念 排序&…...
Spring MVC 请求流程
SpringMVC 请求流程 一、DispatcherServlet 是一个 Servlet二、Spring MVC 的完整请求流程 Spring MVC 框架是基于 Servlet 技术的。以请求为驱动,围绕 Servlet 设计的。Spring MVC 处理用户请求与访问一个 Servlet 是类似的,请求发送给 Servlet…...
鸿蒙ArkUI 宫格+列表+HttpAPI实现
鸿蒙ArkUI学习实现一个轮播图、一个九宫格、一个图文列表。然后请求第三方HTTPAPI加载数据,使用了axios鸿蒙扩展库来实现第三方API数据加载并动态显示数据。 import {navigateTo } from ../common/Pageimport axios, {AxiosResponse } from ohos/axiosinterface IDa…...
【C++中的STL】常用算法1——遍历算法和查找算法
常用算法1 常用算法常用遍历算法for_eachtransform 常用查找算法findfind_ifadjacent_findbinary_searchcountcount_if 常用算法 算法主要是由头文件<algorithm><functional><numeric>组成。 <algorithm>是所有STL头文件中最大的一个,范围…...
Jmeter性能测试: 基于JDK 21 安装 Jmeter 5.6.3
目录 一、实验 1.环境 2.JDK下载 3.Jmeter下载 4.Windows安装JDK 21 5.Windows安装Jmeter 5.6.3 6.Linux安装JDK 21 7.Linux安装Jmeter 5.6.3 二、问题 1. Linux 的profile、bashrc、bash_profile文件有哪些区别 一、实验 1.环境 (1)主机 表…...
Linux命令-apropos命令(在 whatis 数据库中查找字符串)
补充说明 apropos命令 在一些特定的包含系统命令的简短描述的数据库文件里查找关键字,然后把结果送到标 准输出。 如果你不知道完成某个特定任务所需要命令的名称,可以使用一个关键字通过Linux apropos实用程 序来搜索它。该实用程序可以搜索关键字并且…...
HunyuanVideo-Foley镜像免配置:预置ffmpeg滤镜链实现音效风格化处理
HunyuanVideo-Foley镜像免配置:预置ffmpeg滤镜链实现音效风格化处理 1. 镜像概述与核心优势 HunyuanVideo-Foley私有部署镜像是一款专为视频与音效生成任务优化的解决方案,基于RTX 4090D 24GB显存和CUDA 12.4深度调优。这个镜像的最大特点是开箱即用的…...
FPGA时序约束实战:Set_Clock_Sense的精准控制与路径优化
1. 为什么需要Set_Clock_Sense约束 在FPGA设计中,时钟网络就像城市交通系统中的红绿灯,控制着数据在各个寄存器之间的流动节奏。但实际工程中经常会遇到一些特殊场景:比如一个多路选择器(MUX)同时接收多个时钟源&#…...
大厂面试秘籍:AI岗位必问的10道题解析
在人工智能技术迅猛发展的今天,AI测试开发岗位已成为大厂竞相争夺的热门领域。对于软件测试从业者而言,转型AI岗位不仅是职业跃迁的机遇,更是技术深化的挑战。一、基础概念题:AI、ML、DL的区别及测试意义这道题考察对人工智能生态…...
Kandinsky-5.0-I2V-Lite-5s Web工具深度解析:非聊天页,专注图生视频的生产级界面
Kandinsky-5.0-I2V-Lite-5s Web工具深度解析:非聊天页,专注图生视频的生产级界面 1. 工具概述 Kandinsky-5.0-I2V-Lite-5s是一款专为图生视频任务设计的轻量级AI模型,它通过简洁直观的Web界面,让用户能够快速将静态图片转化为动…...
PROJECT MOGFACE自动化办公助手:集成Python脚本处理Excel与生成报告
PROJECT MOGFACE自动化办公助手:告别重复劳动,让报告自己“写”自己 你是不是也受够了每周、每月那些格式固定的数据报告?从一堆Excel表格里复制粘贴数据,再绞尽脑汁组织语言,最后排版成一份像样的文档。这个过程枯燥…...
Youtu-Parsing模型C盘空间优化部署:清理与迁移实战指南
Youtu-Parsing模型C盘空间优化部署:清理与迁移实战指南 你是不是也遇到过这种情况?兴致勃勃地在Windows电脑上部署Youtu-Parsing这类大模型,准备大干一场,结果没跑几天,C盘就亮起了刺眼的红色警告。系统盘空间告急&am…...
ROS Melodic/Noetic下,为Jetson Xavier NX源码编译Realsense-ROS 2.3.1与SDK 2.48.0的完整流程
ROS Melodic/Noetic下为Jetson Xavier NX源码编译Realsense-ROS 2.3.1与SDK 2.48.0的完整指南 在机器人视觉领域,Intel RealSense深度相机凭借其出色的性能与稳定性成为众多开发者的首选。然而,当我们将目光投向Jetson Xavier NX这样的边缘计算平台时&am…...
断更 9 天放大招!OpenClaw 3.22 版全维度升级,龙虾这次真的变超强
各位技术圈的小伙伴,学长来给大家同步个重磅消息!火遍全网的 OpenClaw 断更 9 天之后,直接甩出王炸 ——2026.3.22-beta.1 预览版正式上线,这次可不是小修小补,而是从插件架构到安全防护、从模型配置到交互体验的底层大…...
洛雪音乐音源项目终极指南:如何免费获取全网高品质音乐资源
洛雪音乐音源项目终极指南:如何免费获取全网高品质音乐资源 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否曾为寻找免费的高品质音乐资源而烦恼?或者厌倦了在多个音…...
Kafka消费者在大数据生态中的集成:从数据湖到AI管道的完整架构
一、引言在数字化转型的浪潮中,企业对数据处理的需求已从传统的批处理模式转向实时化、高并发的场景。无论是金融风控中的毫秒级欺诈检测、电商交易中的个性化实时推荐,还是物联网监控中的异常预警,实时数据流处理能力已成为业务竞争力的核心…...
