public String createFile(Object object) {
try {
Excel excel = (Excel) object;
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
for (SheetContent sheetContent:excel.getSheets()) {
HSSFSheet sheet = hssfWorkbook.createSheet(sheetContent.getName());
List<HSSFCellStyle> formats = new ArrayList<>();
/** format */
for (String format:sheetContent.getFormats()) {
HSSFCellStyle cs = hssfWorkbook.createCellStyle();
HSSFDataFormat df = hssfWorkbook.createDataFormat();
cs.setDataFormat(df.getFormat(format));
formats.add(cs);
}
/** header */
HSSFRow headerRow = sheet.createRow(0);
for (int i = 0; i < sheetContent.getHeaders().size(); i++) {
HSSFCell cell = headerRow.createCell(i);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(sheetContent.getHeaders().get(i));
}
/** content */
for (int i = 0; i < sheetContent.getRows().size(); i ++) {
HSSFRow dataRow = sheet.createRow(i + 1);
for (int j = 0; j < sheetContent.getRows().get(i).getCells().size(); j++) {
HSSFCell cell = dataRow.createCell(j);
if (StringUtils.isNotEmpty(sheetContent.getFormats().get(j))) {
cell.setCellValue(Double.parseDouble(sheetContent.getRows().get(i).getCells().get(j)));
cell.setCellStyle(formats.get(j));
} else {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(sheetContent.getRows().get(i).getCells().get(j));
}
}
}
/** auto size */
for (int i = 0; i < sheet.getRow(0).getPhysicalNumberOfCells(); i++) {
sheet.autoSizeColumn(i);
}
}
FileOutputStream out = new FileOutputStream(new File("Excel.xls"));
hssfWorkbook.write(out);
out.close();
return "ok";
} catch (Exception e) {
LOG.error(Constants.EXCEPTION_PREFIX, e);
return null;
}
}
public class Excel {
List<SheetContent> sheets;
public List<SheetContent> getSheets() {
return sheets;
}
public Excel setSheets(List<SheetContent> sheets) {
this.sheets = sheets;
return this;
}
public Excel addSheets(SheetContent sheet) {
if (this.sheets == null) {
this.sheets = new ArrayList<>();
}
this.sheets.add(sheet);
return this;
}
}
public class SheetContent {
private String name;
private List<String> formats;
private List<String> headers;
private List<Row> rows;
public String getName() {
return name;
}
public SheetContent setName(String name) {
this.name = name;
return this;
}
public List<String> getFormats() {
return formats;
}
public SheetContent setFormats(List<String> formats) {
this.formats = formats;
return this;
}
public List<String> getHeaders() {
return headers;
}
public SheetContent setHeaders(List<String> headers) {
this.headers = headers;
return this;
}
public List<Row> getRows() {
return rows;
}
public SheetContent setRows(List<Row> rows) {
this.rows = rows;
return this;
}
}
public class Row {
private List<String> cells;
public List<String> getCells() {
return cells;
}
public Row setCells(List<String> cells) {
this.cells = cells;
return this;
}
}
Categories
- FFMpeg (5)
- Libav (1)
- Google (3)
- iBeacon (1)
- LDAP (3)
- Me (2)
- Network (11)
- OS (149)
- RTMP (4)
- SIP (1)
- Kamailio (1)
- SNMP (1)
- VMware (20)
- VCP考試 (1)
- 伺服器 網站服務 (105)
- 名詞解釋 (4)
- 專案管理 (1)
- 工具軟體 (51)
- Adobe (1)
- FMS (1)
- Cloudera (1)
- Docker (1)
- Eclipse (4)
- Intellij (2)
- OBS (2)
- Office (10)
- Excel (4)
- PowerPoint (5)
- Postman (2)
- Splunk (13)
- Virtualbox (2)
- Visual Studio (2)
- 文字編輯器 (10)
- Sublime Text 2 (6)
- Sublime Text 3 (3)
- Vim (3)
- 連線工具 (1)
- Xshell (1)
- Adobe (1)
- 程式語言 (81)
- CSS (2)
- HTML (2)
- iOS (1)
- Java (31)
- JavaScript (5)
- jQuery (4)
- jsTree (2)
- JSP (3)
- PHP (16)
- Python (8)
- Ruby (1)
- sed (1)
- Shell Script (8)
- Windows Bash Script (1)
- XML (1)
- 資料庫 (38)
- FFMpeg (5)