easyExcel实现多个sheet页导出,main方法测试。

之前小编写过一篇有关于easyExcel实现多个sheet页导出的文章,但有人看不懂,所以小编写了一个main方法,以帮助让你更通俗易懂,先上结果:

main方法代码如下:

package easyExcel;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.FileUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;

import java.io.File;
import java.util.ArrayList;
import java.util.List;


public class test {
    public static void main(String[] args) {
        //FileUtil.mkdir("D:\\test");创建测试文件夹,第一次运行之后注释掉,
        File file = new File("D:\\test\\test.xlsx");
        //准备第一个sheet页的数据
        list1 list1 = new list1();
        list1.setName("张三");
        list1.setAge(20);

        list1Data list1Data = new list1Data();
        List<list1Data> list2Data1 = new ArrayList<>();
        BeanUtil.copyProperties(list1, list1Data);
        list2Data1.add(list1Data);


        //准备第二个sheet页的数据
        list1 list2 = new list1();
        list2.setName("李四");
        list2.setAge(22);

        list2Data list2Data = new list2Data();
        BeanUtil.copyProperties(list2, list2Data);
        List<list2Data> list2Data2 = new ArrayList<>();
        list2Data2.add(list2Data);

        try (ExcelWriter excelWriter = EasyExcel.write(file).build();) {//file文件;
            WriteSheet sheet = EasyExcel.writerSheet("张三信息").head(list1Data.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            WriteSheet build = EasyExcel.writerSheet("李四信息").head(list2Data.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
            excelWriter.write(list2Data1, sheet);
            excelWriter.write(list2Data2, build);
            System.out.println("运行成功");

        }


    }
}

如下是sheet页的对象:

package easyExcel;

import lombok.Data;


@Data
public class list1 {
    private String name;
    private int age;

}

package easyExcel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentFontStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import lombok.Data;
import lombok.EqualsAndHashCode;


@Data
@EqualsAndHashCode
//头字体大小
@HeadFontStyle(fontHeightInPoints = 12)
//内容字体大小
@ContentFontStyle(fontHeightInPoints = 10)

public class list1Data {
    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("年龄")
    private int age;
}

package easyExcel;


import lombok.Data;


@Data

public class list2 {
    private String name;
    private int age;
}


 

package easyExcel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentFontStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import lombok.Data;
import lombok.EqualsAndHashCode;


@Data
@EqualsAndHashCode
//头字体大小
@HeadFontStyle(fontHeightInPoints = 12)
//内容字体大小
@ContentFontStyle(fontHeightInPoints = 10)

public class list2Data {
    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("年龄")
    private int age;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值