'com.alibaba.excel.ExcelWriter' 中的 'ExcelWriter(java.io.OutputStream, com.alibaba.excel.support.ExcelTypeEnum, boolean)' 无法应用于 '(java.lang.String, com.alibaba.excel.support.ExcelTypeEnum, boolean)'
时间: 2023-11-18 10:04:13 浏览: 73
这个错误发生的原因是你在创建 `ExcelWriter` 对象时,使用了错误的构造函数。根据错误提示,`ExcelWriter` 类中没有接受 `(String, ExcelTypeEnum, boolean)` 参数的构造函数。
正确的构造函数应该是 `ExcelWriter(OutputStream outputStream, ExcelTypeEnum type, boolean needHead)`,其中第一个参数是输出流,第二个参数是 Excel 文件的类型,第三个参数表示是否需要写入表头。因此,你需要将第一个参数改为输出流对象,例如:
```java
OutputStream outputStream = new FileOutputStream("output.xlsx");
ExcelWriter writer = new ExcelWriter(outputStream, ExcelTypeEnum.XLSX, true);
```
这样就可以避免这个错误了。
相关问题
java单元测试报错com.alibaba.excel.exception.ExcelGenerateException: Can not close IO.
这个异常可能是由于在写入Excel文件时,IO流没有被正确关闭所引起的。你可以检查你的代码,确保你已经正确地关闭了Excel的IO流,以释放资源。你可以尝试在finally块中关闭IO流,以确保即使发生异常,也会正确地关闭流。
另外,你也可以使用Java 7中的try-with-resources语法来自动关闭IO流,这样你就不需要在代码中显式地关闭流了。例如:
```java
try (OutputStream out = new FileOutputStream("example.xlsx")) {
// 写入Excel文件的代码
} catch (IOException e) {
// 处理异常
}
```
在这个示例中,当try块执行完毕时,out流会自动关闭,无论是否发生异常。
java 使用alibaba.excel 把list数据写入excel 多个sheet
您可以使用阿里巴巴的easyexcel库来将Java List数据写入Excel的多个sheet中。下面是一个简单的示例代码:
```java
import java.io.FileOutputStream;
import java.util.List;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteWorkbook;
public class WriteToExcel {
public static void writeExcel(List<List<Object>> data, String[] sheetNames, String fileName) {
try (FileOutputStream outputStream = new FileOutputStream(fileName)) {
WriteWorkbook writeWorkbook = EasyExcel.write(outputStream).build();
ExcelWriterBuilder excelWriterBuilder = EasyExcel.write(writeWorkbook);
for (int i = 0; i < data.size(); i++) {
WriteSheet writeSheet = EasyExcel.writerSheet(i, sheetNames[i]).build();
excelWriterBuilder.sheet().doWrite(data.get(i));
}
excelWriterBuilder.build();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这个方法可以接受一个List<List<Object>>参数,其中每个内部List表示一个sheet的数据。它还需要一个String数组来指定每个sheet的名称,以及一个String参数来指定保存文件的名称和路径。您可以在每个内部List中添加任何类型的数据,例如String或Integer等。
需要注意的是,阿里巴巴的easyexcel库需要您在pom.xml文件中添加相应的依赖。在使用时您需要在代码中导入相应的类。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)