java - 在 Spring 为 excel 生成运行一个短暂的后台任务

标签 java spring spring-mvc apache-poi

在我的项目中,要求是在后台进程中生成 EXCEL 文件(我用 POI 完成了)。 当用户单击 excel generate 时,后台进程将运行并生成 excel 并通知用户 excel 已准备好下载(使用 Velocity 完成)。 我有 20 多个任务需要生成一个 excel 文件。所有任务都应在后台运行,以便用户可以顺利访问整个应用程序。 我们用来获取 excel 文件数据的数据库是 MYSQL

提前致谢。

最佳答案

enter image description here新建一个excel文件

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
//..
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sample sheet");
//Create a new row in current sheet
Row row = sheet.createRow(0);
//Create a new cell in current row
Cell cell = row.createCell(0);
//Set value to new value
cell.setCellValue("Blahblah");

下面是用虚拟数据编写一个新的 excel 的完整代码:

HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("Sample sheet");

        Map<string, object[]=""> data = new HashMap<string, object[]="">();
        data.put("1", new Object[] {"Emp No.", "Name", "Salary"});
        data.put("2", new Object[] {1d, "John", 1500000d});
        data.put("3", new Object[] {2d, "Sam", 800000d});
        data.put("4", new Object[] {3d, "Dean", 700000d});

        Set<string> keyset = data.keySet();
        int rownum = 0;
        for (String key : keyset) {
            Row row = sheet.createRow(rownum++);
            Object [] objArr = data.get(key);
            int cellnum = 0;
            for (Object obj : objArr) {
                Cell cell = row.createCell(cellnum++);
                if(obj instanceof Date) 
                    cell.setCellValue((Date)obj);
                else if(obj instanceof Boolean)
                    cell.setCellValue((Boolean)obj);
                else if(obj instanceof String)
                    cell.setCellValue((String)obj);
                else if(obj instanceof Double)
                    cell.setCellValue((Double)obj);
            }
        }

        try {
            FileOutputStream out = 
                    new FileOutputStream(new File("C:\\new.xls"));
            workbook.write(out);
            out.close();
            System.out.println("Excel written successfully..");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

关于java - 在 Spring 为 excel 生成运行一个短暂的后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524389/

相关文章:

java - Spring集成Bean错误

使用 Maven 打包 JAR 和 WAR 的 Spring Boot 迁移问题

java - Dex缓存目录不可写:/data/dalvik-cache

java - 从 Arrays.asList 返回的列表是否保持与原始数组集合相同的顺序?

java - Spring MVC validator : validate using current session object

java - 通过 Spring 连接 mongodb 时创建名称为 'mongoTemplate' 的 bean 时出错

java - 查询异常 : illegal attempt to dereference collection Hibernate Select w/subclasses

hibernate - 找不到 org.springframework.security.authentication.UsernamePasswordAuthenticationToken 的 AuthenticationProvider

java - 由于数组索引导致的字符串异常

Java Arraylist 删除对象