Java Aspose导入导出excel

    

 导出模板如上图

实体类:

	/** 主键 */
	private String id;
	/** 班级名称 */
	private String name;
	/** 班级人数 */
	private String num;
/**
     * 导出Excel数据
     * @param query
     * @return
     * @throws Exception
     */
    public InputStream exportBwClass(BwClass query) throws Exception
    {
        // 导出路径
        String logPath = "D:" + File.separator + "excel" + File.separator + "bwClassExport" + File.separator + "";

        File file = new File(logPath);
        if (!file.exists())
        {
            file.mkdirs();
        }

        // 模板路径
        String FilePath = "D:" + File.separator + "excel" + File.separator + "Template.xlsx";

        InputStream in = null;
        Workbook wb = null;
        try
        {
            in = new FileInputStream(new File(FilePath));
            // 读取工作簿
            wb = new Workbook(in);
        }
        finally
        {
            // 关闭输入流
            in.close();
        }

        // 创建Aspose.Cells WorkbookDesigner 的对象
        WorkbookDesigner designer = new WorkbookDesigner();
        designer.setWorkbook(wb);

        // 构建DataSource
        List<BwClass> rList = queryList(query);
        designer.setDataSource("a", rList);

        // 根据数据源处理生成报表内容
        designer.process();

        // 输出流,写入到文件中
        String tempFile = BwClassConstant.TEMP_EXCEL;
        OutputStream out = new FileOutputStream(tempFile);

        try
        {
            // 保存数据
            wb.save(out, wb.getFileFormat());
            FileInputStream inputStream = new FileInputStream(tempFile);
            return inputStream;
        }
        finally
        {
            out.close();
        }
    }


 

/**
     * 保存导入excel
     */
    @Override
    public ResponseDto saveImport(HttpServletRequest request, InputStream in)
    {
        ResponseDto dto = new ResponseDto();

        // 1、打开文件,参数可以是文件的路径,也可以直接传入一个文件流
        Workbook workbook = null;
        try
        {
            workbook = new Workbook(in);
        }
        catch (Exception e)
        {
            LOG.error(e.getMessage(), e);
            throw new NormalRuntimeException(e.getMessage());
        }

        // 2、获取sheet表
        WorksheetCollection worksheets = workbook.getWorksheets();
        Worksheet worksheet = worksheets.get(0);

        Cells cells = worksheet.getCells();
        List<BwClass> addList = new ArrayList<BwClass>();
        for (int i = 1; i < cells.getMaxRow() + 1; i++)
        {
            int j = 0;
            if (StringUtil.isEmpty(cells.get(i, j).getStringValue()))
            {
                throw new NormalRuntimeException("班级id不能为空");
            }
            BwClass bwClass = new BwClass(cells.get(i, j).getStringValue(), cells.get(i, j + 1).getStringValue(), cells.get(i, j + 2).getStringValue());
            bwClass.setCreateTime(new Date());
            if (bwClass != null)
            {
                addList.add(bwClass);
            }
        }
        try
        {
            bwClassDao.batchCreate(addList, "insert");
            dto.setSuccesResultObj("导入成功");
        }
        catch (Exception e)
        {
            dto.setErrMsg("导入失败!");
            LOG.error(e.getMessage(), e);
        }

        worksheets.clear();
        worksheet = null;
        worksheets = null;
        workbook = null;
        return dto;
    }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值