程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Spring Boot中创建Apache POI Excel View配置大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在Spring Boot中创建Apache POI Excel View配置?

开发过程中遇到如何在Spring Boot中创建Apache POI Excel View配置的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在Spring Boot中创建Apache POI Excel View配置的解决方法建议,希望对你解决如何在Spring Boot中创建Apache POI Excel View配置有所启发或帮助;

使用Spring Boot,您不需要任何额外的配置即可生成excel文件。

创建一个返回带有AbstractExcelVIEw的ModelAndVIEw的控制器:

@Controller
public class MyController {

    @requestMapPing(value="/myexcel", method=requestMethod.GET)
    public ModelAndVIEw getMyData(httpServletrequest request, httpServletResponse responsE) throws sqlException{
        Map<String, Object> model = new HashMap<String, Object>();
        //Sheet name
        model.put("sheetname", "TestSheetname");
        //headers List
        List<String> headers = new ArrayList<String>();
        headers.add("column1");
        headers.add("column2");
        headers.add("column3");
        model.put("headers", headers);
        //Results table (List<Object[]>)
        List<List<String>> results = new ArrayList<List<String>>();
        List<String> l1 = new ArrayList<String>();
        l1.add("A1");
        l1.add("B1");
        l1.add("C1");
        results.add(l1);
        List<String> l2 = new ArrayList<String>();
        l2.add("A2");
        l2.add("B2");
        l2.add("C2");
        results.add(l2);
        model.put("results",results);
        response.setContentType( "application/ms-excel" );
        response.setheader( "Content-disposition", "attachment; filename=myfile.xls" );         
        return new ModelAndVIEw(new MyExcelVIEw(), model);
    }

然后像这样构建您的AbstractExcelVIEw:

public class MyExcelVIEw extends AbstractExcelVIEw
{
    @SuppressWarnings("unchecked")
    protected voID buildExceldocument(Map<String, Object> model,
            hssfWorkbook workbook,
            httpServletrequest request,
            httpServletResponse responsE)
    {
        //VARIABLES required IN MODEL
        String sheetname = (String)model.get("sheetname");
        List<String> headers = (List<String>)model.get("headers");
        List<List<String>> results = (List<List<String>>)model.get("results");
        List<String> numericcolumns = new ArrayList<String>();
        if (model.containsKey("numericcolumns"))
            numericcolumns = (List<String>)model.get("numericcolumns");
        //BUILD DOC
        hssfSheet sheet = workbook.createSheet(sheetName);
        sheet.setDefaultcolumnWIDth((short) 12);
        int currentRow = 0;
        short currentcolumn = 0;
        //CREATE STYLE FOR header
        hssfCellStyle headerStyle = workbook.createCellStyle();
        hssfFont headerFont = workbook.createFont();
        headerFont.setBolDWeight(hssfFont.bolDWEIGHT_BolD);
        headerStyle.setFont(headerFont); 
        //POPulATE header columNS
        hssfRow headerRow = sheet.createRow(currentRow);
        for(String header:headers){
            hssfRichTextString text = new hssfRichTextString(header);
            hssfCell cell = headerRow.createCell(currentcolumn); 
            cell.setCellStyle(headerStylE);
            cell.setCellValue(text);            
            currentcolumn++;
        }
        //POPulATE VALUE ROWS/columNS
        currentRow++;//exclude header
        for(List<String> result: results){
            currentcolumn = 0;
            hssfRow row = sheet.createRow(currentRow);
            for(String value : result){//used to count number of columns
                hssfCell cell = row.createCell(currentcolumn);
                if (numericcolumns.contains(headers.get(currentcolumn))){
                    cell.setCellType(hssfCell.CELL_TYPE_NUMERIC);
                    cell.setCellValue(NumUtils.extractDoubLeorZero(value));
                } else {
                    hssfRichTextString text = new hssfRichTextString(value);                
                    cell.setCellValue(text);                    
                }
                currentcolumn++;
            }
            currentRow++;
        }
    }
}

解决方法

我想使用Spring Boot Web将数据导出到excel时遇到问题

我正在使用Thymeleaf作为模板引擎(由Spring
Boot自动配置)。但是,当我在其他配置中添加XmlViewResolver时,由XmlViewResolver解析的胸腺视图绝对是无法解析的。我尝试通过创建新类来解决该问题,然后扩展WebMvcConfigurerAdapter并在那里重新配置thymeleaf模板解析器。但是我的模板无法解析,因为找不到我的模板位置。我把它放在:

 /resources/template/

请帮我。

大佬总结

以上是大佬教程为你收集整理的如何在Spring Boot中创建Apache POI Excel View配置全部内容,希望文章能够帮你解决如何在Spring Boot中创建Apache POI Excel View配置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。