Android创建保存Excel文件

news/2024/7/21 7:11:55 标签: 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(){
            @Override
            public 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能打开已经能满足需求了。


http://www.niftyadmin.cn/n/5348060.html

相关文章

信息安全法律法规与国家政策(1)

本文已收录至《全国计算机等级考试——信息 安全技术》专栏 国家相继发布了多个重要的网络安全法案和法规&#xff0c;以《数据安全法》《个信息保护法》《中华人民共和国网络安全法》等为基础的多项政策法规逐步落地实施&#xff0c;我国的网络安全法律体系逐步在完善&#xf…

ES性能优化和注意事项

进阶 数据预处理 Ingest 冷热集群架构 性能优化 硬件配置优化 升级硬件设备配置一直都是提高服务能力最快速有效的手段&#xff0c;在系统层面能够影响应用性能的一般包括三个因素&#xff1a;CPU、内存和 IO&#xff0c;可以从这三方面进行 ES 的性能优化工作。 CPU 配置…

uni-app h5对接 thinkphp5接口跨域

uni-app h5对接 thinkphp5接口跨域 问题描述 请求接口 提示 Access to XMLHttpRequest at http://******* from origin http://localhost:8091 has been blocked by CORS policy: Response to preflight request doesnt pass access control check: It does not have HTTP o…

【iOS ARKit】同时开启前后摄像头BlendShapes

在上一节中已经了解了 iOS ARkit 进行BlendShapes的基本操作&#xff0c;这一小节继续实践同时开启前后摄像头进行人脸捕捉和世界追踪。 iOS设备配备了前后两个摄像头&#xff0c;在运行AR 应用时&#xff0c;需要选择使用哪个摄像头作为图像输人。最常见的AR 体验使用设备后置…

【代码---利用程序读取视频,每隔几帧保存为一张图片】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言代码详细解释导入OpenCV库&#xff1a;定义保存帧的函数 save_frames&#xff1a;打开视频文件并获取基本信息&#xff1a;输出视频信息&#xff1a;循环读取视…

MongoDB:从容器使用到 Mongosh、Python/Node.js 数据操作

文章目录 1. 容器与应用之间的关系介绍2. 使用 Docker 容器安装 MongoDB3. Mongosh 操作3.1 Mongosh 连接到 MongoDB3.2 基础操作与 CRUD 4. Python 操作 MongoDB5. Nodejs 操作 MongoDB参考文献 1. 容器与应用之间的关系介绍 MongoDB 的安装有时候并不是那么容易的&#xff0…

PHP文件相关函数大总结

PHP中与文件相关的函数&#xff1a; 以下示例均以读取example.txt为例&#xff1a; example.txt的内容&#xff1a; this is a txt. 这是一个文件 1 .使用 file_get_contents 读取整个文件内容&#xff1a; $fileContent file_get_contents(example.txt); echo $fileContent…

Mac中java jdk、android sdk、flutter sdk目录

1、Java JDK 目录 &#xff08;1&#xff09;官网下载的 Java JDK Java JDK下载官网 /Library/Java/JavaVirtualMachines&#xff08;2&#xff09;Android Studio下载的 Java JDK /Users/用户名/Library/Java/JavaVirtualMachines2、Android SDK 目录 /Users/用户名/Libr…