You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fesod.apache.org by "bengbengbalabalabeng (via GitHub)" <gi...@apache.org> on 2025/10/29 14:55:13 UTC
Re: [I] [Bug] 在使用1.3.0版本的时候通过FastExcel.writerSheet写excel会有报错Stream closed,1.2.0版本正常,!!!可能需要使用一个普通用户来启动jar包,使用root是正常的 [fesod]
bengbengbalabalabeng commented on issue #663:
URL: https://github.com/apache/fesod/issues/663#issuecomment-3462031396
## 环境
- Docker [CentOS 7]
- amazon-corretto-17
- fastexcel 1.3.0
- Maven 3.9.6
## 测试结果
正常,未复现普通用户执行错误问题。`multi-sheet-pojo-write-test.xlsx` 与以下结果一致。(是不是我这边遗漏了什么?)
<img width="321" height="267" alt="Image" src="https://github.com/user-attachments/assets/31b3956f-4d93-44b2-9a6e-d6c2c8a0b661" />
## 代码
Main
```java
public class App {
public static void main(String[] args) {
System.out.println("Hello World!");
writeWithPOJO();
writeWithNoPOJO();
System.out.println("Done...");
}
static void writeWithPOJO() {
String path = "/app/output/multi-sheet-pojo-write-test.xlsx";
try (ExcelWriter excelWriter = FastExcel.write(path).excelType(ExcelTypeEnum.XLSX).build()) {
for (int i = 0; i < 3; i++) {
WriteSheet writeSheet = FastExcel.writerSheet(i, "TableName_" + (i + 1))
.head(ExcelData.class)
.build();
excelWriter.write(pojoData(), writeSheet);
}
}
}
public static List<ExcelData> pojoData() {
return IntStream.range(1, 11)
.mapToObj(no -> new ExcelData(no, UUID.randomUUID().toString()))
.toList();
}
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Data
public static class ExcelData implements Serializable {
@ExcelProperty("序号")
private Integer no;
@ExcelProperty("代码")
private String code;
}
static void writeWithNoPOJO() {
String path = "/app/output/multi-sheet-list-write-test.xlsx";
List<List<String>> head = new ArrayList<>();
head.add(List.of("序号"));
head.add(List.of("代码"));
try (ExcelWriter excelWriter = FastExcel.write(path).excelType(ExcelTypeEnum.XLSX).build()) {
for (int i = 0; i < 3; i++) {
WriteSheet writeSheet = FastExcel.writerSheet(i, "TableName_" + (i + 1))
.head(head)
.build();
excelWriter.write(mapData(), writeSheet);
}
}
}
public static List<List<Object>> mapData() {
return IntStream.range(1, 11)
.<List<Object>>mapToObj(no -> List.of(no, UUID.randomUUID().toString()))
.toList();
}
}
```
Dockerfile (By AI)
```Dockerfile
FROM centos:7
COPY amazon-corretto-17.0.17.10.1-linux-aarch64 /usr/lib/jvm/amazon-corretto-17
ENV JAVA_HOME=/usr/lib/jvm/amazon-corretto-17
ENV PATH="$JAVA_HOME/bin:${PATH}"
WORKDIR /app
COPY target/fesod-docker-test-1.0-SNAPSHOT-jar-with-dependencies.jar app.jar
# 创建非 root 用户(用于复现权限问题)
RUN useradd -m testuser
USER testuser
CMD ["java", "-jar", "app.jar"]
```
docker-compose.yaml (By AI)
```yaml
version: "3.8"
services:
fastexcel:
build: .
container_name: fesod-docker-test
volumes:
- {local-volume}:/app/output/
working_dir: /app
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fesod.apache.org
For additional commands, e-mail: commits-help@fesod.apache.org