1. 导入依赖
< dependency>
< groupId> org.apache.poi</ groupId>
< artifactId> poi</ artifactId>
</ dependency>
< dependency>
< groupId> org.apache.poi</ groupId>
< artifactId> poi-ooxml</ artifactId>
</ dependency>
使用代码
package com. sky ;
import org. apache. poi. xssf. usermodel. XSSFRow ;
import org. apache. poi. xssf. usermodel. XSSFSheet ;
import org. apache. poi. xssf. usermodel. XSSFWorkbook ;
import java. io. File ;
import java. io. FileInputStream ;
import java. io. FileOutputStream ;
import java. io. InputStream ;
public class POITest {
public static void write ( ) throws Exception {
XSSFWorkbook excel = new XSSFWorkbook ( ) ;
XSSFSheet sheet = excel. createSheet ( "我是页的名称" ) ;
XSSFRow row = sheet. createRow ( 1 ) ;
row. createCell ( 1 ) . setCellValue ( "姓名" ) ;
row. createCell ( 2 ) . setCellValue ( "城市" ) ;
row = sheet. createRow ( 2 ) ;
row. createCell ( 1 ) . setCellValue ( "张三" ) ;
row. createCell ( 2 ) . setCellValue ( "北京" ) ;
row = sheet. createRow ( 3 ) ;
row. createCell ( 1 ) . setCellValue ( "李四" ) ;
row. createCell ( 2 ) . setCellValue ( "南京" ) ;
FileOutputStream out = new FileOutputStream ( new File ( "D:\\导出的excel文件.xlsx" ) ) ;
excel. write ( out) ;
out. close ( ) ;
excel. close ( ) ;
}
public static void read ( ) throws Exception {
InputStream in = new FileInputStream ( new File ( "D:\\导出的excel文件.xlsx" ) ) ;
XSSFWorkbook excel = new XSSFWorkbook ( in) ;
XSSFSheet sheet = excel. getSheetAt ( 0 ) ;
int lastRowNum = sheet. getLastRowNum ( ) ;
for ( int i = 1 ; i <= lastRowNum ; i++ ) {
XSSFRow row = sheet. getRow ( i) ;
String cellValue1 = row. getCell ( 1 ) . getStringCellValue ( ) ;
String cellValue2 = row. getCell ( 2 ) . getStringCellValue ( ) ;
System . out. println ( cellValue1 + " " + cellValue2) ;
}
in. close ( ) ;
excel. close ( ) ;
}
public static void main ( String [ ] args) throws Exception {
write ( ) ;
read ( ) ;
}
}
Demo1
public void exportBusinessData ( HttpServletResponse response) {
LocalDate dateBegin = LocalDate . now ( ) . minusDays ( 30 ) ;
LocalDate dateEnd = LocalDate . now ( ) . minusDays ( 1 ) ;
BusinessDataVO businessDataVO = workspaceService. getBusinessData ( LocalDateTime . of ( dateBegin, LocalTime . MIN ) , LocalDateTime . of ( dateEnd, LocalTime . MAX ) ) ;
InputStream in = this . getClass ( ) . getClassLoader ( ) . getResourceAsStream ( "template/运营数据报表模板.xlsx" ) ;
try {
XSSFWorkbook excel = new XSSFWorkbook ( in) ;
XSSFSheet sheet = excel. getSheet ( "Sheet1" ) ;
sheet. getRow ( 1 ) . getCell ( 1 ) . setCellValue ( "时间:" + dateBegin + "至" + dateEnd) ;
XSSFRow row = sheet. getRow ( 3 ) ;
row. getCell ( 2 ) . setCellValue ( businessDataVO. getTurnover ( ) ) ;
row. getCell ( 4 ) . setCellValue ( businessDataVO. getOrderCompletionRate ( ) ) ;
row. getCell ( 6 ) . setCellValue ( businessDataVO. getNewUsers ( ) ) ;
row = sheet. getRow ( 4 ) ;
row. getCell ( 2 ) . setCellValue ( businessDataVO. getValidOrderCount ( ) ) ;
row. getCell ( 4 ) . setCellValue ( businessDataVO. getUnitPrice ( ) ) ;
for ( int i = 0 ; i < 30 ; i++ ) {
LocalDate date = dateBegin. plusDays ( i) ;
BusinessDataVO businessData = workspaceService. getBusinessData ( LocalDateTime . of ( date, LocalTime . MIN ) , LocalDateTime . of ( date, LocalTime . MAX ) ) ;
row = sheet. getRow ( 7 + i) ;
row. getCell ( 1 ) . setCellValue ( date. toString ( ) ) ;
row. getCell ( 2 ) . setCellValue ( businessData. getTurnover ( ) ) ;
row. getCell ( 3 ) . setCellValue ( businessData. getValidOrderCount ( ) ) ;
row. getCell ( 4 ) . setCellValue ( businessData. getOrderCompletionRate ( ) ) ;
row. getCell ( 5 ) . setCellValue ( businessData. getUnitPrice ( ) ) ;
row. getCell ( 6 ) . setCellValue ( businessData. getNewUsers ( ) ) ;
}
ServletOutputStream out = response. getOutputStream ( ) ;
excel. write ( out) ;
out. close ( ) ;
excel. close ( ) ;
} catch ( IOException e) {
e. printStackTrace ( ) ;
}
}