In this example we will see how to export a WorkBook to Excel. ExcelCreator class is used to create the HSSFWorkbook. The ExcelCreator class contains the following code.
01.
public
class
ExcelCreator {
02.
03.
public
HSSFWorkbook createWorkbook(ArrayList userList)
throws
Exception {
04.
05.
HSSFWorkbook wb =
new
HSSFWorkbook();
06.
HSSFSheet sheet = wb.createSheet(
"User Data"
);
07.
08.
/**
09.
* Setting the width of the first three columns.
10.
*/
11.
sheet.setColumnWidth(
0
,
3500
);
12.
sheet.setColumnWidth(
1
,
7500
);
13.
sheet.setColumnWidth(
2
,
5000
);
14.
15.
/**
16.
* Style for the header cells.
17.
*/
18.
HSSFCellStyle headerCellStyle = wb.createCellStyle();
19.
HSSFFont boldFont = wb.createFont();
20.
boldFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
21.
headerCellStyle.setFont(boldFont);
22.
23.
HSSFRow row = sheet.createRow(
0
);
24.
HSSFCell cell = row.createCell(
0
);
25.
cell.setCellStyle(headerCellStyle);
26.
cell.setCellValue(
new
HSSFRichTextString(
"User Name"
));
27.
cell = row.createCell(
1
);
28.
cell.setCellStyle(headerCellStyle);
29.
cell.setCellValue(
new
HSSFRichTextString(
"Email Id"
));
30.
cell = row.createCell(
2
);
31.
cell.setCellStyle(headerCellStyle);
32.
cell.setCellValue(
new
HSSFRichTextString(
"Location"
));
33.
34.
for
(
int
index =
1
; index < userList.size(); index++) {
35.
row = sheet.createRow(index);
36.
cell = row.createCell(
0
);
37.
UserData userData = (UserData) userList.get(index);
38.
HSSFRichTextString userName =
new
HSSFRichTextString(userData.getUserName());
39.
cell.setCellValue(userName);
40.
cell = row.createCell(
1
);
41.
HSSFRichTextString emailId =
new
HSSFRichTextString(userData.getEmailId());
42.
cell.setCellValue(emailId);
43.
cell = row.createCell(
2
);
44.
HSSFRichTextString location =
new
HSSFRichTextString(userData.getLocation());
45.
cell.setCellValue(location);
46.
}
47.
return
wb;
48.
}
49.
}
The ExcelCreator class contains the createWorkbook method which takes an ArrayList as the argument and returns a HSSFWorkbook .The ArrayList contains a list of UserData. The ArrayList is iterated using a for loop and each row in the excel is created.
In our example the UserAction class extends DispatchAction. The UserAction class contains an exportExcel method, which is used to export the workbook to excel. The UserAction class contains the following code.
01.
public
class
UserAction
extends
DispatchAction {
02.
03.
private
final
static
String SUCCESS =
"success"
;
04.
05.
public
ActionForward populate(ActionMapping mapping, ActionForm form,
06.
HttpServletRequest request, HttpServletResponse response)
07.
throws
Exception {
08.
UserForm userForm = (UserForm) form;
09.
UserData userData =
new
UserData();
10.
userForm.setUserList(userData.loadData());
11.
return
mapping.findForward(SUCCESS);
12.
}
13.
14.
public
ActionForward exportExcel(ActionMapping mapping, ActionForm form,
15.
HttpServletRequest request, HttpServletResponse response)
16.
throws
Exception {
17.
UserForm userForm = (UserForm) form;
18.
ExcelCreator excelCreator =
new
ExcelCreator();
19.
HSSFWorkbook workbook = excelCreator.createWorkbook(userForm.getUserList());
20.
response.setHeader(
"Content-Disposition"
,
"attachment; filename=UserDetails.xls"
);
21.
ServletOutputStream out = response.getOutputStream();
22.
workbook.write(out);
23.
out.flush();
24.
out.close();
25.
return
mapping.findForward(SUCCESS);
26.
}
27.
}
Run the example. The following user details will be displayed.
On clicking the Excel link the workbook is exported to excel. The following excel sheet will be displayed.
No comments:
Post a Comment