EasyExcel可以通过设置多个sheet来导出多个sheet的数据。可以参考EasyExcel的文档或示例代码来实现导出多个sheet的功能
时间: 2023-03-30 09:03:53 浏览: 135
可以的,EasyExcel提供了设置多个sheet的方法,可以通过创建多个Sheet对象并设置数据,最后将这些Sheet对象添加到Workbook对象中来实现导出多个sheet的功能。具体实现可以参考EasyExcel的文档或示例代码。
相关问题
EasyExcel 实现多个Sheet页导出
在 EasyExcel 中,可以通过 `Sheet` 类来创建多个 Sheet 页,并将数据写入到各个 Sheet 中,最后再将这些 Sheet 导出为一个 Excel 文件。以下是一个示例代码:
```java
// 创建 Excel 对象
ExcelWriter writer = EasyExcel.write("example.xlsx").build();
// 创建第一个 Sheet
Sheet sheet1 = new Sheet(1, 0);
sheet1.setSheetName("Sheet 1");
List<List<String>> data1 = new ArrayList<>();
// 写入数据到第一个 Sheet
// ...
// 创建第二个 Sheet
Sheet sheet2 = new Sheet(2, 0);
sheet2.setSheetName("Sheet 2");
List<List<String>> data2 = new ArrayList<>();
// 写入数据到第二个 Sheet
// ...
// 将两个 Sheet 添加到 Excel 中
writer.write(data1, sheet1);
writer.write(data2, sheet2);
// 关闭 Excel 对象
writer.finish();
```
在上述代码中,首先创建了一个 `ExcelWriter` 对象,然后通过 `Sheet` 类分别创建了两个 Sheet 页,并将数据写入到各自的 Sheet 中,最后将这两个 Sheet 页添加到 Excel 对象中,并关闭 Excel 对象以完成导出。
easyexcel导出多个sheet示例
IMER);
LL_TIM_EnableCounter(TIMER);
while (LL_TIM_GetCounter(TIMER) < ticks) {}
LL_TIM_DisableCounter(TIMER);
}
uint32_t measureDistance(void) {
LL_GPIO_ResetOutputPin(GPIOA, TRIG_PIN);
delayUs(2);
LL_GPIO_SetOutputPin(GPIOA, TRIG_PIN);
delayUs(10);
LL_GPIO_ResetOutputPin(GPIO下面是一个使用EasyExcel导出多个sheet的示例代码:
```java
public void exportExcelWithMultipleSheets(HttpA, TRIG_PIN);
while (!LL_GPIO_IsInputPinSet(GPIOA, ECHO_PIN)) {}
LL_TIM_EnableCounterServletResponse response) {
try {
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName(TIMER);
while (LL_GPIO_IsInputPinSet(GPIOA, ECHO_PIN)) {}
LL_TIM_DisableCounter(TIMER);
= URLEncoder.encode("多个Sheet的Excel文件", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename
uint32_t elapsed = LL_TIM_GetCounter(TIMER);
float distance = (elapsed * 0.0343) / =" + fileName + ".xlsx");
OutputStream outputStream = response.getOutputStream();
ExcelWriter excelWriter = EasyExcel.write(outputStream).build();
2.0;
return (uint32_t)distance;
}
int main(void)
{
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
LL_TIM_InitTypeDef TIM_InitStruct = {0};
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM // 写入第一个Sheet
WriteSheet sheet1 = EasyExcel.writerSheet(0, "Sheet1").head(Student.class).2);
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
GPIO_InitStruct.Pin = TRIG_PIN;
build();
List<Student> students1 = getStudents1(); // 获取第一个Sheet的数据
excelWriter.write(students1, GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = ECHO_PIN;
GPIO_InitStruct.Mode = LL_GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = LL sheet1);
// 写入第二个Sheet
WriteSheet sheet2 = EasyExcel.writerSheet(1, "Sheet2")._GPIO_PULL_NO;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
TIM_InitStruct.Prescaler = 0;
TIM_InitStruct.Counterhead(Teacher.class).build();
List<Teacher> teachers = getTeachers(); // 获取第二个Sheet的数据
excelWriterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 0xFFFFFFFF;
LL_TIM_Init(TIMER, &TIM.write(teachers, sheet2);
// 关闭ExcelWriter
excelWriter.finish();
outputStream.flush();
outputStream.close();
_InitStruct);
LL_TIM_EnableIT_UPDATE(TIMER);
while (1)
{
uint32_t distance = measureDistance();
}
}
void TIM2_IRQHandler(void)
{
if (LL_TIM_IsActiveFlag_UPDATE(TIMER) == 1)
{
LL_TIM } catch (IOException e) {
e.printStackTrace();
}
}
private List<Student> getStudents1() {
// 获取第一个Sheet_ClearFlag_UPDATE(TIMER);
}
}
```
3. 与第一个示例类似,但使用 HAL 库和 DMA 来的数据
// ...
}
private List<Teacher> getTeachers() {
// 获取第二个Sheet的数据
// ...
读取定时器计数器的值。
在 CubeMX 中选择 STM32F103VCT6 芯片,然后按}
```
代码中首先设置了响应头,然后创建一个ExcelWriter实例。接着分别创建了两照以下步骤进行配置:
- 在 Pinout 标签页中,将 PA0 配置为 GPIO_Output,将 PA1 配个WriteSheet实例,分别用于写入两个Sheet的数据。最后通过ExcelWriter将数据写入Excel文件置为 GPIO_Input。
- 在 Configuration 标签页中,选择 SYSCLK 为 HSE,选择 HSE 值为 8 MHz,并关闭ExcelWriter。
阅读全文
相关推荐













