安卓开发数据可视化---导入数据到excel表格

编程之家收集整理的这篇文章主要介绍了安卓开发数据可视化---导入数据到excel表格编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

现在是2021-03-12 00::39

刚刚完成了一个小软件部分功能,现在把出现的问题总结如下:


一、首先要下载jar包

网址:https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl/2.6.12

把jar包添加到项目库

然后需要在清单文件配置申请访问SD卡的权限信息

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="replace"/>
android:requestLegacyExternalStorage="true"

这里我出现了一个问题
这个版本的jxl只可以支持解析后缀名为:.xls的文件,而且有一点要特别注意,文件格式的修改最好通过文件另存为的方式修改
而不要直接在文件名上修改后缀名

这样看起来是对的,其实文件内部结构已经被打乱。那么在调用方法
in=new File(fileName);
Workbook workbook = Workbook.getWorkbook(in);  的时候就会出现文件解析异常,这个错误不会在控制台输出,是很隐蔽的错误

@H_301_49@二、软件错误调试

当出现那种运行不报错,数据没有NULL异常的情况时,
可以使用一条语句进行分析,
使用Log.v()方法在控制台输出一句话。
这样就可以知道程序究竟在运行到哪一步出现了问题,导致结果

不是自己想要的。

@H_301_49@三、清单文件
清单文件尽量少乱改动,注释也尽量少加,因为一旦出现哪个地方多了个什么符号是很难发现的,而且软件不会飘红报错。

@H_301_49@四、获取权限可以有代码来体现
  前提是已经导入jar包并且在清单文件完成引用注册
 1     //读写权限
 2     private static String[] PERMISSIONS_STORAGE     = {
 3             Manifest.permission.READ_EXTERNAL_STORAGE, 4             Manifest.permission.WRITE_EXTERNAL_STORAGE};
 5     请求状态码
 6     static int      REQUEST_PERMISSION_CODE = 1;
 7 
 8   写在onCreate()
 9 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
10             if (ActivityCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
11                 ActivityCompat.requestPermissions(this,PERMISSIONS_STORAGE,REQUEST_PERMISSION_CODE);
12             }
13         }
14   这是一个回调方法,在第一次运行安装软件的时候会在控制台输出一句话
15 
16   回调访问权限
17         @Override
18         public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
19             super.onRequestPermissionsResult(requestCode,permissions,grantResults);
20             if (requestCode == REQUEST_PERMISSION_CODE) {
21                 for (int i = 0; i < permissions.length; i++) {
22                     Log.i("MainActivity","申请的权限为:" + permissions[i] + ",申请结果:" + grantResults[i]);
23                 }
24 25     }

 

五、说一下实现过程中的路径存储问题

因为要获取的是手机存储位置,所以可能不如电脑那么清晰,我的手机是荣耀。

首先我们要清楚一点,就是

File file =
new File(Environment.getExternalStoragePublicDirectory(Environment.
DIRECTORY_DOWNLOADS),"success_0.xls");//参数2是文件名称

 下面给出几种方法获取路径

tips:一般手机sd卡路径是 /storage/emulated/0

 获取 /storage/emulated/0

1 boolean sdCardIsAvailable() {
2  首先判断外部存储是否可用
3  if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
4   File sd = new File(Environment.getExternalStorageDirectory().getPath());
5   Log.e("qq","sd = " + sd);sd = /storage/emulated/0
6   return sd.canWrite();
7  } else8   return false9  }

 获取 /storage/emulated/0(类似上面)

 1 public String getSDPath() {
 2  File sdDir = null 3   判断sd卡是否存在
boolean sdCardExist = Environment.getExternalStorageState()
 5 .equals(android.os.Environment.MEDIA_MOUNTED); 
 6  (sdCardExist) {
 7 sdDir = Environment.getExternalStorageDirectory();获取根目录
 8 Log.e("qq","外部存储可用..." + sdDir.toString());
}
10  sdDir.toString();
11 使用
void saveInRoot() {
14  if (getSDPath()!=15   String fileName = getSDPath() + "/";
File file = new File(fileName,"123111");参数
17   if (!file.mkdir()) {
18    Toast.makeText(ExternalStoreActivity.this,"目录已存在...",Toast.LENGTH_SHORT).show();
19   } else {
20    21   }
22  }
23 }

获取手机指定目录(也是我用的这一种)

 File getAlbumStorageDir(String fileName) {
 2   Get the directory for the user's public pictures directory.
 3  在 Environment.DIRECTORY_DOWNLOADS 目录下创建名为fileName的文件夹 刷新查看
 4  File file =
 5    File(Environment.getExternalStoragePublicDirectory(Environment.
 6    DIRECTORY_DOWNLOADS),fileName);参数2是文件名称
 7  mkdirs()可以创建多级目录
 8  mkdir()只能创建一级目录
 9  if (!file.mkdir()) {
10   Log.e(LOG_TAG,"Directory not created");
11   Toast.makeText(ExternalStoreActivity.12  } 13   Toast.makeText(ExternalStoreActivity.14 15   file;
16 }

上述代码来自脚本之家  https://www.jb51.net/article/144850.htm

 

Tomorrow the birds will sing.

总结

以上是编程之家为你收集整理的安卓开发数据可视化---导入数据到excel表格全部内容,希望文章能够帮你解决安卓开发数据可视化---导入数据到excel表格所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

相关文章

猜你在找的Android相关文章

1 AlertDialog.Builder builder=new AlertDialog.Builder(this); 2 builder.setTitle(&quot;历史记录&quot;).se
Android页面跳转和数据回传 今天我尝试用两个页面实现数据的传递和回传,出现了一些问题,把问题已经成功的案例总结如下: 具体是这样的: 有两个layout布局,两个activity。MainAct
2021-03-06 13:26:12.274 8544-8544/com.example.helloworld E/AndroidRuntime: FATAL EXCEPTION: main Pro
用到的jxl2.6.12 jar&#160;包下载地址: https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl/2.6.12
问题① 我在另外一个项目里写了一个注册和登录功能的几个文件,当我想把这些代码和另一个文件合起来的时候就出现了问题。 首先不可以直接把另外一个项目的某个文件直接复制过来, 最好的办法是重新新建一个相同名
什么是SystemService 我们在Android开发过程中经常会用到各种各样的系统管理服务,如进行窗口相关的操作会用到窗口管理服务WindowManager,进行电源相关的操作会用到电源管理服务
1.垂直滚动:Scroll 新建一个应用程序: 在MainActivity的布局文件上做个实验,现在设置了按钮1和按钮2后还剩下一些空位: 再设置一个按钮3让他超出屏幕之外: 现在去运行程序,是滑动不
1. SELinux 背景知识 1.1 DAC 与 MAC 在 SELinux 出现之前,Linux 上的安全模型叫 DAC,全称是 Discretionary Access Control,翻译为自