Spring Mvc Download Excel File

Posted on
Active2 years, 9 months ago

Apr 08, 2015  spring MVC 3 download an Excel file. Browse other questions tagged excel spring-mvc or ask your own question. 5 years, 11 months ago. 4 years, 2 months ago. Featured on Meta Unicorn Meta Zoo #4: What makes for a healthy community? How to create Excel (.XLS and.XLSX) file in C# without. In Spring MVC application, to download a resource such as a file to the browser, you need to do the following in your controller. Use the void return type for your request-handling method and add HttpServletResponse as an argument to the method. Set the response’s content type to the file’s. Export as excel is one of the most wanted feature in an enterprise application. In this tutorial let us learn about export as excel feature using Spring MVC framework. If you are a beginner, go through the Spring MVC tutorial before taking this. We will be using Spring 3 annotation based approach. Aug 15, 2015  Spring MVC 4 File Download Example. Download a file in Spring MVC Application by writing it's content to HttpServletResponse output stream, setting required headers.

I'am working on an excel export functionality in one of my webapps. I set up a little test case and got the download working, but the xlsx file is corrupted and don't know what else I could try. If I write the excel to file it opens without problem, so the error must occure when downloading.

The setup:

Spring Mvc Download Excel File

spring-mvc 3.2.7poi 3.10.1Tomcat 8.0

Controller method:

Abstract Custom View:

ExcelBuilder:

Response Header:

It confuses me that the charset will be set, when this is binary data. Could that be the problem?

user3734130user3734130

2 Answers

Don't return ModelAndView but just write the excel file to the response's outputStream

Mvc File Download

Check all the streams flushed/closed

StanislavLStanislavL
52.9k8 gold badges46 silver badges81 bronze badges

I would suggest to use existing solution rather than trying to deal with the response stream by yourself.

I would use AbstractExcelView instead of your AbstractPOIExcelView to do the job. Check this tutorial using AbstractExcelView for inspiration.

For Spring 4.2 or newer use AbstractXlsView (or AbstractXlsxView) because the original AbstractExcelView is deprecated.

Free reggae drum beats

The Student Soul
1,0701 gold badge7 silver badges10 bronze badges

Spring Mvc Return File

betatester07betatester07

Not the answer you're looking for? Browse other questions tagged javaexcelspringspring-mvc or ask your own question.

1. Introduction

In this article, we will demonstrate how to upload Excel files and display their content in a web page using the Spring MVC framework.

2. Uploading Excel Files

Download Excel File Using Spring Mvc

In order to be able to upload files, we will first create a controller mapping that receives a MultipartFile and saves it in the current location:

Next, let's create a JSP file with a form that contains an input of type file which will have the accept attribute set to only allow Excel files:

3. Reading Excel Files

In order to parse the uploaded excel file, we will use the Apache POI library, which can work with both .xls and .xlsx files.

Let's create a helper class called MyCell which will contain properties of an Excel cell related to content and formatting:

Download drivers for NVIDIA products including GeForce graphics cards, nForce motherboards, Quadro workstations, and more. Update your graphics card drivers today. GeForce GTX 760 Ti (OEM), GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745, GeForce GT 740, GeForce GT 720, GeForce GT 710. GeForce 600 Series: GeForce GTX 690, GeForce GTX. Download the latest GeForce drivers to enhance your pc gaming experience and run apps faster. Automatically scan your PC or search the driver database for compatible GPU drivers. Nvidia geforce 7600 gt drivers. Browse the list below to find the driver that meets your needs. To see more matches, use our custom search engine to find the exact driver. Tech Tip: If you are having trouble deciding which is the right driver, try the Driver Update Utility for NVIDIA GeForce 7600 GT.It is a software utility that will find the right driver for you - automatically.

We will read the content of the Excel file into a Map that contains lists of MyCell objects.

3.1. Parsing a .xls File

A .xls file is represented in the Apache POI library by an HSSFWorkbookclass, which is made up of HSSFSheet objects. For opening and reading the content of a .xls file, you can view our article on Working with Microsoft Excel in Java.

For parsing the formatting of a cell, we will obtain the HSSFCellStyleobject, which can help us determine properties like the background color and font. All the read properties will be set in the attributes of the MyCell object:

The colors are read in an rgb(rVal, gVal, bVal) format to make it easier to display them using CSS in a JSP page.

Let's also obtain the font size, weight, and color:

3.2. Parsing a .xlsx File

For files in the newer .xlsx format, we can use the XSSFWorkbook class and similar ones for the contents of a workbook, also documented in the Working with Microsoft Excel in Java article.

Let's take a closer look at reading the formatting of a cell in the .xlsx format. First, we will retrieve the XSSFCellStyle object associated with a cell and use it to determine the background color and font:

In this case, the RGB values of the color will be signed byte values, so we will obtain the unsigned values by adding 0xff to the negative values.

Let's also determine the properties of the font:

3.3. Handling Empty Rows

The methods described above do not account for empty rows in an Excel file. If we want a faithful rendition of the file that displays the empty rows as well, we will need to simulate these in our resulting HashMap with an ArrayList of MyCell objects containing empty Strings as content.

Initially, after reading the Excel file, the empty rows in the file will be ArrayList objects with a size of 0.

In order to determine how many empty String objects we should add, we will first determine the longest row in the Excel file, using the maxNrCols variable. Then we will add that number of empty String objects to all the lists in our HashMap that have a size of 0:

4. Displaying Excel Files

For displaying the Excel files read using Spring MVC, we will need to define a controller mapping and JSP page.

4.1. Spring MVC Controller

Let's create a @RequestMapping method that will call the code above to read the content of the uploaded file, then add the returned Map as a Model attribute:

Spring Mvc Download Excel File From Web

Download

4.2. JSP

For visually displaying the content of the file, we will create an HTMLtable and, in the style attribute of each table cell, add the formatting properties corresponding to each cell from the Excel file:

5. Conclusion

Spring Mvc Download Excel File Example

In this article, we have shown an example project for uploading Excel files and displaying them in a web page using the Spring MVC framework.

Spring Mvc Download Excel File Fill Gst On Gst Portal

The full source code can be found in the GitHub project.

Spring Mvc Download File

I just announced the new Learn Spring course, focused on the fundamentals of Spring 5 and Spring Boot 2:

>> CHECK OUT THE COURSE