XLS文件最多能够容纳多少条数据?
测试使用的是WPS2.4.0(3964)
xls只能容纳65536条数据,但你可以向其中写入更多数据。
新建一个xls文件,拉到文件最末,最后一行为65536
新建一个xlsx文件,拉到文件最末,最后一行为1048576
通过easyExcel工具向xls文件单表单写入超过7W条数据成功,使用wps成功打开,此时文件最后一行为1048576。
猜测:wps其实将我的xls文件转换成xlsx文件显示.
通过easyExcel工具向xls文件单表单写入超过105W条数据,失败,报错,文件最大为1048576行。
人工添加当然是失败的。
时间有限,没有查找官方文档和资料
推测:
可能性1:1048576是一个sheet的极限了,不能写入更多了。
可能性2:既然能够向xls文件中写入超过7W条数据,那么向xlsx文件写入超过1048576行数据应该也可以,只是打不开罢了。
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.metadata.Sheet;
import com.subaihao.eureka.User;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
public class EasyExcelTest {
public static void main(String[] args){
contextLoads();
}
public static List<User> getUserList(int j){
List<User> userList = new ArrayList<>();
for (int i=0;i<100;i++){
User user = new User();
user.setName("ZhangSan");
user.setAge(i);
user.setPassword(user.getName()+'_'+user.getAge()+'_'+"12345678"+'_'+j);
userList.add(user);
}
return userList;
}
public static List<User> getUserList2(){
List<User> userList = new ArrayList<>();
for (int i=0;i<100;i++){
User user = new User();
user.setName("LiSi");
user.setAge(i);
user.setPassword(user.getName()+'_'+user.getAge()+'_'+"12345678");
userList.add(user);
}
return userList;
}
public static void contextLoads(){
// 文件输出位置
OutputStream out = null;
try {
out = new FileOutputStream("/Users/subaihao/filestorage/test3.xls");
ExcelWriter writer = EasyExcelFactory.getWriter(out);
// 写仅有一个 Sheet 的 Excel 文件, 此场景较为通用
Sheet sheet1 = new Sheet(1, 0, User.class);
// 第一个 sheet 名称
sheet1.setSheetName("第一个sheet");
// 写数据到 Writer 上下文中
// 入参1: 数据库查询的数据list集合
// 入参2: 要写入的目标 sheet
for(int i = 1;i<10000;i++){
writer.write(getUserList(i), sheet1);
}
// 将上下文中的最终 outputStream 写入到指定文件中
writer.finish();
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
try {
// 关闭流
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
需要:springBoot,maven,easyExcel,lombok
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.subaihao</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>