最近需要使用SXSSFWorkbook导出Excel表,但是这个POI没用过,一直出现问题
想要的效果如下
首先是创建一个新的工作簿“未查到记录编码”;
然后在这个“未查到记录编码”里面第一行第一格,固定生成“编号”;
而“编号”下面把我从数据库里面取到的数据向下依次写进去;
给你找了一篇非常好的博客,你可以看看是否有帮助,链接:导出大数据量excel文件——POI的SXSSFWorkbook对象使用可以用spire.xls或者free spire.xls
maven依赖:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>12.8.4</version>
</dependency>
</dependencies>
导出数据库数据到excel:
```java
import com.spire.data.table.DataTable;
import com.spire.data.table.common.JdbcAdapter;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import java.sql.*;
public class ExportDataFromDatabaseToExcel {
public static void main(String[] args) {
//Create a Workbook object
Workbook wb = new Workbook();
//Get the first worksheet
Worksheet sheet = wb.getWorksheets().get(0);
//Create a DataTable object
DataTable dataTable = new DataTable();
//Connect to database
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};"
+ "DBQ=C:\\Users\\Administrator\\Desktop\\Document\\data.mdb";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
try {
Connection conn = DriverManager.getConnection(url);
Statement sta = conn.createStatement();
//Select table from the database
ResultSet resultSet = sta.executeQuery("select * from vendors");
JdbcAdapter jdbcAdapter = new JdbcAdapter();
//Export data from database to datatable
jdbcAdapter.fillDataTable(dataTable, resultSet);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//Write datatable to the worksheet
sheet.insertDataTable(dataTable, true, 2, 1);
//Auto fit column width
sheet.getAllocatedRange().autoFitColumns();
//Save to an Excel file
wb.saveToFile("output/ExportToExcel.xlsx", ExcelVersion.Version2016);
}
}
```