要想用此demo,需要在build.gradle文件中加入:implementation group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'

如果是便已无法通过,还是自己手动下载jxl.jar包吧

 

MainActivity.java

public class MainActivity extends Activity {    private Button btn;    private String excelPath;    private File excelFilePath;    private File excelFile;    private Bitmap bitmap;    private List list = new ArrayList();    private static final String TEST_PICTURE_PATH = "mnt/sdcard/testdata";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        PermissionRequest.requestPermission(this);        BitmapFactory.Options options = new BitmapFactory.Options();        options.inSampleSize = 2;        bitmap = BitmapFactory.decodeFile("mnt/sdcard/testdata/test.png", options);        initData();        btn = findViewById(R.id.excel);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                excelPath = TEST_PICTURE_PATH + File.separator + "test.xls";                excelFilePath = new File(TEST_PICTURE_PATH);                if (!excelFilePath.exists()) {                    excelFilePath.mkdirs();                }                excelFile = new File(excelPath);                if (!excelFile.exists()) {                    try {                        excelFile.createNewFile();                    } catch (IOException e) {                        e.printStackTrace();                    }                }                exportData(list);            }        });    }    private void initData() {        for (int i = 1; i <= 100; i++) {            ResultModel model = new ResultModel();            model.setNumber(i);            model.setAnswer_view(bitmap);            model.setAnswer_text(i);            model.setVerify(i);            model.setResult("〇");            list.add(model);        }    }    /**     * @param list 导出数据     */    public static void exportData(List list) {        WritableWorkbook wwb = null;        try {            wwb = Workbook.createWorkbook(new File("mnt/sdcard/testdata/test.xls"));        } catch (IOException e) {            e.printStackTrace();            Log.d("dd", "exportData: " + e.toString());        }        if (wwb != null) {            //创建底部的选项卡  传参是选项卡的名称  和  选型卡的索引            WritableSheet writableSheet = wwb.createSheet("test", 0);            //创建excel的表头的信息            String[] topic = {"序号", "图片", "答案", "作答", "评分"};            for (int i = 0; i < topic.length; i++) {                //横向的在单元格中填写数据                Label labelC = new Label(i, 0, topic[i]);                try {                    writableSheet.addCell(labelC);                } catch (WriteException e) {                    e.printStackTrace();                }            }            //从实体中遍历数据并将数据写入excel文件中            ResultModel account;            ArrayList li;            for (int j = 0; j < list.size(); j++) {                account = list.get(j);                li = new ArrayList<>();                li.add(account.getNumber() + "");                li.add(account.getAnswer_view() + "");                li.add(account.getAnswer_text() + "");                li.add(account.getVerify() + "");                li.add(account.getResult() + "");                int k = 0;                for (int i = 0; i < li.size(); i++) {                    if (k == 1) {                        try {                            WritableImage image = new WritableImage(k, j + 1, 1, 1, saveBitmapFile(account.getAnswer_view(), "/mnt/sdcard/testdata/test.png"));                            writableSheet.addImage(image);                        } catch (Exception e) {                            Log.d(TAG, "exportData: error " + e.toString());                        }                    } else {                        Label labelC = new Label(k, j + 1, li.get(i));                        try {                            writableSheet.addCell(labelC);                        } catch (WriteException e) {                            e.printStackTrace();                            Log.d(TAG, "exportData: error " + e.toString());                        }                    }                    k++;                }            }        }        //将文件从内存写入到文件当中        try {            wwb.write();            wwb.close();        } catch (IOException e) {            e.printStackTrace();        } catch (WriteException e) {            e.printStackTrace();        }    }    public static File saveBitmapFile(Bitmap bitmap, String filepath) {        File file = new File(filepath);        try {            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);            bos.flush();            bos.close();        } catch (IOException e) {            e.printStackTrace();        }        return file;    }}

本文是一个很好地Android数据传入本地Excel的demo,里面有整型,字符串和Bitmap类型

不过要提前将测试图片保存到:mnt/sdcard/testdata/test.png

希望对大家有帮助

 

更多相关文章

  1. android中的sqlit3数据库进行手机应用软件开发(自写的一个财务管
  2. linux 配置安装android sdk自动下载缺少文件
  3. 6.1、Android中从Internet获取数据
  4. Android在MTP模式下,只显示指定文件夹
  5. 《Android开发从零开始》——25.数据存储(4)
  6. android 使用html5作布局文件: webview跟javascript交互
  7. Android系统配置数据库注释(settings.db)
  8. Android中不同应用间实现SharedPreferences数据共享

随机推荐

  1. 【DB笔试面试824】在Oracle中,什么是ADDM?
  2. 与亲生的Redis Cluster,来一次亲密接触
  3. 【秒杀】二、what?秒杀也可以做引擎?
  4. 【DB笔试面试510】在Oracle中,DBMS_OUTPUT
  5. 这次要是讲不明白Spring Cloud核心组件,那
  6. 【DB笔试面试253】在Oracle中,有哪些角色
  7. 【DB笔试面试119】在Oracle中,Identify th
  8. 架构秘笈:移花接木。使用mysql模拟redis
  9. 学完这100多技术,能当架构师么?(非广告)
  10. SpringBoot如何加载jar包外面的配置文件?