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

相关文章
|
2月前
|
关系型数据库 MySQL Shell
不通过navicat工具怎么把查询数据导出到excel表中
不通过navicat工具怎么把查询数据导出到excel表中
39 0
|
12天前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
1月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
14天前
|
前端开发 JavaScript
💥【exceljs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了用于处理Excel文件的库——ExcelJS,相较于SheetJS,ExcelJS支持更高级的样式自定义且易于使用。表格对比显示,ExcelJS在样式设置、内存效率及流式操作方面更具优势。主要适用于Node.js环境,也支持浏览器端使用。文中详细展示了如何利用ExcelJS实现前端的Excel导出下载和上传解析功能,并提供了示例代码。此外,还提供了在线调试的仓库链接和运行命令,方便读者实践。
118 5
|
5天前
|
前端开发 JavaScript API
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
前端基于XLSX实现数据导出到Excel表格,以及提示“文件已经被损坏,无法打开”的解决方法
33 0
|
10天前
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
145 0
|
1月前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
52 19
|
1月前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
42 2
|
18天前
|
Java Apache
Apache POI java对excel表格进行操作(读、写) 有代码!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
25 0
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何直接导出excel文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。