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

相关文章
|
1月前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
136 5
|
1月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
30 1
|
1月前
|
数据格式 UED
记录一次NPOI库导出Excel遇到的小问题解决方案
【11月更文挑战第16天】本文记录了使用 NPOI 库导出 Excel 过程中遇到的三个主要问题及其解决方案:单元格数据格式错误、日期格式不正确以及合并单元格边框缺失。通过自定义单元格样式、设置数据格式和手动添加边框,有效解决了这些问题,提升了导出文件的质量和用户体验。
176 3
|
1月前
|
SQL 数据可视化 数据挖掘
想让Excel表格设计更美观?试试这几款好用工具!
Excel表格设计在项目管理和数据分析中至关重要。本文推荐四款辅助工具:板栗看板、Excel自动图表助手、Think-Cell Chart 和 Power BI,分别在任务管理、图表生成、数据可视化等方面表现突出,帮助你设计出更专业、美观的表格。
76 2
|
1月前
|
Java API Apache
|
1月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
70 4
|
2月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
110 6
|
2月前
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
215 0
|
2月前
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
857 0
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
166 3