@Override
public InputStream exportTrialAccount(Map<String, Object> params) {
List<Object> list = this.searchTrialAccountList(params);
try {
if (list != null && list.size() > 0) {
XSSFWorkbook xssf = new XSSFWorkbook();
Workbook wb = new SXSSFWorkbook(xssf);
Sheet sheet = wb.createSheet("導出");
sheet.setAutoFilter(CellRangeAddress.valueOf("B1:C1"));
sheet.setColumnWidth(1,256*8*2);
sheet.setColumnWidth(2,256*8*2);
sheet.setColumnWidth(3,256*8*2);
sheet.setColumnWidth(4,256*8*2);
sheet.setColumnWidth(5,256*8*1);
sheet.setColumnWidth(6,256*6*2);
sheet.setColumnWidth(7,256*6*2);
sheet.setColumnWidth(8,256*8*1);
Row row1 = sheet.createRow(0);
// excel 第一行為列名
String[] cols = new String[]{"序號","開號人員", "分配員工", "產品名稱", "軟件帳號", "軟件密碼", "開始時間", "結束時間", "帳號狀態", "分配狀態"};
String[] columnNames = new String[]{"排名","staffName", "assignName", "name", "account", "password", "start_time", "end_time", "status", "empAssignStatus"};
CellStyle style = setRowStyle(wb);
for (int i = 0; i < cols.length; i++) {
Cell colCell = row1.createCell(i);
colCell.setCellValue(cols[i]);
colCell.setCellStyle(style);
}
int rowNum = 1;// 數據從第二行開始顯示
int colNum = 0;// 每一行的cell數
for (int k = 0; k < list.size(); k++) {
Row dataRow = sheet.createRow(rowNum);
Map entity = (Map) list.get(k);
for (colNum = 0; colNum < columnNames.length; colNum++){
String key = columnNames[colNum];
Cell cell = null;
if (colNum == 0) {
cell = dataRow.createCell(colNum);
cell.setCellValue(k+1);
} else {
cell = dataRow.createCell(colNum);
cell.setCellValue(entity.get(key) != null ? entity.get(key).toString() : "");
}
}
rowNum++;
colNum = 0;
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
wb.write(baos);
ByteArrayInputStream swapStream = new ByteArrayInputStream(baos.toByteArray());
baos.flush();
baos.close();
return swapStream;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private CellStyle setRowStyle(Workbook wb) {
CellStyle style = wb.createCellStyle();
//邊框填充
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 居中對齊
style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框
Font font = wb.createFont();
font.setFontName("黑體");
style.setFont(font);
// style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
// style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
style.setWrapText(true);
return style;
}
POI 導出例子
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 前面講完概述、原理以及helloworld,現在就講下怎樣的POI的EXCEL導出工具可以適用于各種情況吧。后面再...
- 生成XLSX格式Excel文檔大數據量導出 使用Apache POI導出Excel小結--導出XLS格式文檔 使用...
- 生成XLSX格式Excel文檔 使用Apache POI導出Excel小結--導出XLS格式文檔 使用Apache...
- 使用Apache POI導出Excel小結 關于使用Apache POI導出Excel我大概會分三篇文章去寫 使用...