java 導出自定義樣式excel


由於項目需要 要求導出一個這樣的表格

然而 正常導出的表格都是這樣嬸兒地

這種格式網上demo有很多就不詳細說了 ,主要說說上面三行是怎么畫的。

第一行大標題,是9行合並成的一行,而且字體大小需要單獨設置

HSSFSheet sheet;
HSSFCell cell;
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
sheet = workbook.createSheet("物料調撥單");
		
//第一行大標題
HSSFCellStyle tStyle = workbook.createCellStyle(); 
tStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
tStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont tFont = workbook.createFont();	//標題字體
tFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
tFont.setFontHeightInPoints((short)15);
tStyle.setFont(tFont);
short twidth = 15,theight=25*20;
sheet.setDefaultColumnWidth(twidth);
cell = getCell(sheet,0,0);
cell.setCellStyle(tStyle);
setText(cell,"物料調撥單");
sheet.getRow(0).setHeight(theight);
sheet.addMergedRegion(new CellRangeAddress(0,0,0,8));

sheet.addMergedRegion(new CellRangeAddress(0,0,0,8)); 這個就是合並單元格方法,需要傳入4個int行的參數,

分別是 起始行,結束行,起始列,結束列。因為我們需要在第一行顯示1個9個格的標題所以行就是從0到0,列是從0到8

 

同理: 下面2行可以這么設置合並

sheet.addMergedRegion(new CellRangeAddress(1, 1, 1, 2));
sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 2));
sheet.addMergedRegion(new CellRangeAddress(1, 1, 4, 5));
sheet.addMergedRegion(new CellRangeAddress(2, 2, 4, 5));
sheet.addMergedRegion(new CellRangeAddress(1, 1, 7, 8));
sheet.addMergedRegion(new CellRangeAddress(2, 2, 7, 8));

由於合並單元格,值取的是第一個單元格的值,所以后面的單元格可以直接賦值為空

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM