开发者社区> pffkzc2qcmn6c> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

web表格用excel导出

简介: web表格用excel导出
+关注继续查看

网页上的表格有时需要导出存储。

需要用到java的一个工具包jxl.jar,地址https://download.csdn.net/download/bushqiang/10320406

 

1.网页上的table

<a href="export">导出表格</a>
 
    <table border="5">
        <tr>
            <th>Month</th>
            <th>money</th>
        </tr>
        <tr>
            <td>January</td>
            <td>10000</td>
        </tr>
        <tr>
            <td>February</td>
            <td>8000</td>
        </tr>
    </table>

2.后台的Servlet

    @RequestMapping("/export")
    public void export(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String path=export();
        System.out.println(path);
        response.sendRedirect("/contestForxls/" + path);
    }

3.java创建表格的方法

public static String export() {
        //生成xls的位置,要在webapps下,下载时才能访问的到
        final String exportPath = "D:\\OnlineJudge\\tomcat_normal\\webapps\\contestForxls\\";
        // 添加标题
        List<String> title = new ArrayList<String>();
        title.add("month");
        title.add("money");
 
        OutputStream os = null;
        // 输出的excel的路径
        String filePath = exportPath + "test.xls";
        try {
            //如果文件夹不存在就创建
            File baseFile = new File(exportPath);
            if (!baseFile.exists()) {
                baseFile.createNewFile();
            }
            //如果文件夹存在就删除
            File exportFile = new File(filePath);
            if (exportFile.exists()) {
                exportFile.delete();
            }
            // Excel单元格的一些样式
            WritableCellFormat wcCenter = new WritableCellFormat();
            wcCenter.setAlignment(Alignment.CENTRE);
 
            WritableCellFormat wcCenterRed = new WritableCellFormat();
            wcCenterRed.setAlignment(Alignment.CENTRE);
            wcCenterRed.setBorder(Border.ALL, BorderLineStyle.THIN);
            wcCenterRed.setBackground(jxl.format.Colour.RED);
 
            WritableCellFormat wcCenterGreen = new WritableCellFormat();
            wcCenterGreen.setAlignment(Alignment.CENTRE);
            wcCenterGreen.setBorder(Border.ALL, BorderLineStyle.THIN);
            wcCenterGreen.setBackground(jxl.format.Colour.GREEN);
 
            // 创建Excel工作薄
            WritableWorkbook wwb;
            // 新建立一个jxl文件,即生成.xls文件
            os = new FileOutputStream(filePath);
            wwb = Workbook.createWorkbook(os);
            // 添加第一个工作表并设置第一个Sheet的名字
            WritableSheet sheet = wwb.createSheet("test", 0);
            Label label;
            for (int i = 0; i < title.size(); i++) {
                // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z
                // 在Label对象的子对象中指明单元格的位置和内容
                label = new Label(i, 0, title.get(i), wcCenter);
                // 将定义好的单元格添加到工作表中
                sheet.addCell(label);
            }
 
            // 下面往xls表格里面填充数据,是一行一行的添加
            int row = 1;// 行,第0行给标题占用了
            //第一行
            int col = 0;// 列
            label = new Label(col++, row, "January", wcCenter);
            sheet.addCell(label);
            label = new Label(col++, row, "10000", wcCenter);
            sheet.addCell(label);
            //第二行
            row++;
            col = 0;// 列
            label = new Label(col++, row, "February", wcCenter);
            sheet.addCell(label);
            label = new Label(col++, row, "8000", wcCenter);
            sheet.addCell(label);
            // 写入数据
            wwb.write();
            // 关闭文件
            wwb.close();
            int index = filePath.lastIndexOf('\\');
            if (index != -1) {
                filePath = filePath.substring(index + 1);
            }
            return filePath;
        } catch (Exception e) {
            System.out.println("导出错误!");
            e.printStackTrace();
            // return "导出错误!";
            return null;
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

4.第三步就直接可以创建一个excel表格了,生成的数据是写死的,项目中的一般都是从数据库中获取,前端表格也应该是从数据库中获取。效果图。

微信图片_20221213180150.png

微信图片_20221213180241.png

poi的方式:https://www.jianshu.com/p/dd1e4f28757b

https://www.cnblogs.com/staticking/p/9914042.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
web作业:Excel表列名称
/** @param N Number @return String
0 0
把 Excel 透视表搬到 WEB 上
把 Excel 透视表搬到 WEB 上,多维分析
1170 0
windows python web flask 模板开发快速入门
windows python web flask 模板开发快速入门
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
边缘安全,让Web加速有保障
立即下载
使用CNFS搭建弹性Web服务
立即下载
WEB框架0day漏洞的发掘及分析经验分享
立即下载