首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用POI打开Excel文件遇到out of memory该如何处理?

当我们开发处理Excel文件,Apache POI 是许多人首选的工具。但是,随着需求的增加、工程复杂,在打开复杂的Excel文件的时候可能会出现一些异常情况。...使用的是WorkbookFactory,直接打开Excel文件,代码如下: File file = new File("testFile.xlsx"); Workbook workbook = WorkbookFactory.create...在网上查了一下,有两个方法: 可以把文件转化为CSV然后导入。 把Excel文件风格为小的Excel文件,分别构建workbook,然后进行处理。 第一个办法,对于仅导入数据很有效。...测试的时候,文件是可以知道分为几个的,但是实际应用时,就没法预测文件的数量。此外根据测试来看,workbook的数量,可能是跟Excel文件的大小相关,这会导致后续开发可能会遇到更多的问题。...那可以分别使用这两个组件验证一下,我们主要想解决的问题有两个: 大量数据和样式的Excel文件能一次性打开 可以有办法保留样式或者操复制样式 对于问题1,EasyExcel和GcExcel都可以做的很好

36710

STM32Cube-20(补充) | 在SD卡上移植FATFS文件系统

配置FATFS文件系统 使用STM32CubeMX配置FATFS文件系统非常方便,只需要在软件中开启即可,软件会自动帮我们移植好。...重新建立SD卡的分区表和FAT文件系统有两种方法: 使用FATFS提供的API 在PC上直接格式化 在PC上使用DiskGenius软件重新分区和格式化 这里我使用第二种方法,比较简单方便,如果对FATFS...读取SD卡中的文件内容 同样的,先在main函数开始开辟一块缓冲区,用于存放读取的数据: /* USER CODE BEGIN 1 */ //要操作的文件名 char filename[] = "test.txt...可以看到,FATFS创建文件,返回的错误码是13,那么如何定位该问题呢?13代表什么? 打开FATFS的ff.h文件即可看到所有错误码所表示的含义: ?...这样问题就定位到了,我们使用的SD卡是之前用于裸机实验的卡,SD卡分区破坏,SD卡文件系统破坏,所以FATFS创建文件才会提示FR_NO_FILESYSTEM问题。

2.1K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于STM32完成FATFS文件系统移植与运用--这是完全免费开源的FAT文件系统

    这些数据类型在integer.h文件中定义。这些数据类型在大多数的编译器中定义都符合要求。 如果现有的定义与编译器有任何冲突发生,需要自己解决。...中间层 FATFS 模块, 实现了 FAT 文件读/写协议。 FATFS 模块提供的是 ff.c 和 ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。...3.1 新建工程 FATFS文件系统源码下载下来,解压之后,移植修改的步骤如下: 打开KEIL工程,添加FATFS文件源码: 加入.h文件主要是方便配。cc936.c 用于支持中文。...*/ #define _FS_LOCK 0 /*  _FS_LOCK选项开关控制复制的文件打开文件锁定功能   /和非法操作打开对象。...这个选项_FS_READONLY必须是0    /是1。  /    / 0:禁用文件锁定功能。为了避免体积腐败、应用程序   /应该避免非法打开,删除和重命名的开放对象。

    3.5K31

    让QSPI FLASH(W25Q64)支持Fatfs文件系统

    方法如下: 使用SD卡将文件拷贝到QSPI FLASH(采用fatfs文件系统) 写一个QSPI FLASH MDK下载算法,直接将图片数据放在主程序中 接下来进入正文: 小熊派上自带了一个QSPI接口的...(W25Q64) 单片机基础 —— 使用QSPI读写SPI Flash(W25Q64) 今天我们主要来讲解下Fatfs系统功能的配置,在进入正题之前,我已经按上面的教程将QSPI Flash正常驱动起来了.../创建BearPi.txt文件成功,向文件写入数据。...printf("文件写入成功,写入字节数据:%d\n", count); printf("向文件写入的数据为:\r\n%s\r\n", write_buf);...,读取字节数据:%d\n", count); printf("向文件读取的数据为:\r\n%s\r\n", read_buf); printf("关闭打开

    2.9K20

    U盘容量大小造假技术手段实现之8M变4G(以STM32 SPI_FLASH为例)

    3、让FLASH适配fatfs以及USB MSC 3.1、Fatfs适配 先适配fatfs,首先打开user_diskio.c,然后添加spi_flash的头文件,接下来填写接口: USER_initialize...文件系统挂载成功\r\n"); return 0 ; } 按键逻辑很简单,当按下按键,擦除SPI FLASH的第一个扇区,因为Fatfs的分区表就放在第一个扇区: while (1)...接下来打开这个磁盘,放一个小于8MB的文件进去: ? 接下来将开发板断电重启: ? 由于我们在PC端进行了格式化,所以断电重启后提示的就是挂载成功了!...接下来我们打开这个U盘,看到如下文件就已经存储在了SPI FLASH的Fatfs文件系统里了,并且可以正常打开浏览: ? ? 那如果我们复制一个超出FLASH大小的文件到盘里会怎么样呢??...一样可以复制进去,然后也一样可以在PC端打开: ? ? ? 但是,断电重启之后就嘿嘿嘿了 ? : ? ? 然后我们就会发现之前存进去的文件打开都是失败的了,很显然分区表已经破坏了。 ? ?

    1.3K30

    FatFs-目录下文件扫描

    FatFs - 通用的FAT文件系统模块 FatFs是用于小型嵌入式系统的通用FAT/exFAT文件系统模块。FatFs模块是按照ANSI C (C89)编写的,完全独立于磁盘I/O层。...为了将现有的具有不同接口的磁盘驱动器连接在一起,需要一些粘合功能来转换FatFs和驱动程序之间的接口。 ? FatFs既不关心使用哪种存储设备,也不关心如何实现。...Fatfs文件夹移植 目录下文件扫描 FATFS fatsd; //定义文件系统对象结构 f_mount(&fatsd,"0:",1); //挂载SD卡 FRESULT scan_files(char.../打开成功 { for(;;) //遍历 { res = f_readdir(&dir, &fno); //读取目录,返回状态 和 文件信息的指针 if(res !...= FR_OK) break; //打开失败则退出 path[i] = 0; }else { printf("是文件:%s/%s ",path,fno.fname); //

    1.9K10

    【STM32H7教程】第88章 STM32H7的SDMMC总线应用之SD卡移植FatFs文件系统

    函数f_open用来创建并打开文件。 函数f_write用来写入数据。...函数f_open用来打开文件。 函数f_read用来读取文件中的内容。 函数f_close用来关闭打开文件。...文件夹和文件的删除都是通过函数f_unlink实现,这里注意一点,删除文件,只有文件夹中的内容为空,才可以删除文件夹。...其实有个更简单,性能也最高的解决办法,核心思想如下(ffconf.h文件里面设置的扇区大小基本都是512字节): 当要写入和读取的数据小于扇区大小时,会直接使用FATFS结构体里面的数组win[_MAX_SS...当要写入和读取的数据大于等于扇区大小时,扇区整数倍的地方将直接使用用户提供的收发缓冲区发送,而不足一个扇区的地方将使用FATFS结构体里面的数组。

    2.8K20

    (46)STM32——FATFS文件系统实验

    get_fattime 代码 总结  ---- 学习目标         我们要来介绍的是FATFS文件系统,这是一个为嵌入式设计的文件系统,甚至8051系列也可以使用,好了,我们开始介绍吧!...中间层FATFS模块,实现了FAT文件读或写协议。FATFS模块提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。...我们使用 FATFS,所以把这个选项定义为 0 即可。如果使用Tiny FATFS,就定义为1。 _FS_READONLY。这个用来配置是不是只读,我们需要读写都用,所以这里设置为 0 即可。...配置:通过 ffconf.h 配置 FATFS 的相关功能,以满足你的需要。 函数编写:打开 diskio.c,进行底层驱动编写,一般需要编写 6 个接口函数。         ...第一步,我们使用的是 MDK5.11a 编译器,器数据类型和 integer.h 里面定义的一致,所以此步,我们不需要做任何改动。

    87310

    使用Navicat数据库软件导入sql文件没有对应的类型怎么解决?

    ,并使用密码sA*dm1n&ql3进行身份验证。...这里的密码使用了特殊字符来增加安全性。...导入使用 Navicat 导入“itlaoli.sql”文件至已创建的数据库用户及对应的数据库,但是当我打开数据库软件的时候我发现在导入的时候类型中居然没有(*.sql)文件,如图:我用软件的次数一只手都能数过来...如图右键选择运行SQL文件:在弹出的界面里找到【文件】点击右侧【...】找到如果导入的sql文件,如图:点击开始之后就是等待就可以,时间嘛跟系统和数据库大小有关,待运行完成后就顺利导入完成,点击关闭即可...经验总结这次数据库导入的经历让我学到了,原来不是能导出就可以顺利导入的,就算不能导入也可以使用其他方案来代替,而且事前做好准备,在进行数据迁移之前,详细了解源数据库和目标数据库的配置是非常重要的。

    13120

    OpenHarmony开发——移植文件子系统

    utils部件可被各业务子系统及上层应用使用,依赖芯片文件系统实现,需要芯片平台提供文件打开、关闭、读写、获取大小等功能。...移植指导OpenHarmony文件系统需要适配如下HAL层接口: 表1 文件打开或关闭接口名描述HalFileOpen文件打开或创建新文件。HalFileClose文件关闭。...表2 文件操作接口名描述HalFileRead读文件。HalFileWrite写文件。HalFileDelete删除文件。HalFileStat获取文件属性。HalFileSeek文件查找。...使用littlefs或者fatfs文件系统进行适配,littlefs或者fatfs都是轻量级文件系统适配简单,其中OpenHarmony的“//thirdparty”目录下已有fatfs可供参考。...使用厂商已有的文件系统进行适配。移植实例“config.json”添加文件系统。

    12720

    RT-Thread进阶之文件系统

    1.引入 1.1 文件系统引入 在早期的嵌入式系统中,需要存储的数据比较少,数据类型也比较单一,往往使用直接在存储设备中的指定地址写入数据的方法来存储数据。...然而随着嵌入式设备功能的发展,需要存储的数据越来越多,也越来越复杂,这时仍使用旧方法来存储并管理数据就变得非常繁琐困难。因此我们需要新的数据管理方式来简化存储数据的组织形式,这就是文件系统的由来。...6.3 RamFS文件系统 6.3.1 简介 RamFS是内存文件系统,它不能格式化,可以同时创建多个,在创建可以指定其最大能使用的内存大小。其优点是读写速度很快,但存在掉电丢失的风险。...当文件系统不再使用,可以将它卸载 6.4.3 注册elm-FAT文件系统 设置fatfs文件系统的数据结构:dfs_elm static const struct dfs_filesystem_ops...shell 的cd命令切换到/fatfs目录,然后使用ls命令: ?

    2.2K10

    STM32项目设计:基于STM32F4的电子阅读器制作教程

    文件系统移植使用 LCD屏驱动(加载字库文件 做字库在LCD上的显示) 功能要求: 开机Logo 电子书列表扫描 电子书列表显示及小说选择菜单 阅读功能: 字体选择 字体大小选择...文件数据的读取 1、谈谈txt文件 学过C语言的文件IO都知道,用open函数打开后,用read函数读取的第一个字节开始就是文本内容,txt文件是文档文件,对于我们程序员来说文档文件是最容易操作的文件类型之一...,因为它不像图片那样还需要考虑头部的一大堆信息 2、读取txt文件数据 利用FATFS文件系统提供的函数f_open 、f_read即可对数据进行读取出来,当然读取出来的都是文字的编码,可以先用串口函数打印出来看看数据对不对...(三)txt文件数据显示到MCU屏 1、数据编码格式的问题 有关显示汉字就必然会涉及编码格式的问题,不同的编码格式对应的汉字编码是不同的,比如UTF-8编码的文件用GB2312编码打开就会乱码。...导入小说 void fatfs_choose(void); //读取数据到flash void file_data_to_w25q(void); //根据页码得到页数 u32 ident_get_page

    1.2K10

    NAND Flash(贴片式TF卡)存储新突破,基础示例

    代码  while(1)之前:FATFS fs; /* FatFs 文件系统对象 */FIL file; /* 文件对象 */FRESULT f_res; /* 文件操作结果 */UINT fnum;...with FatFs \r\n STM32的FATFS文件系统测试 \r\n ";// 在外部 SD 卡挂载文件系统,文件系统挂载时会对 SD 卡初始化// note:必须先要保证SD卡正常拥有FAT...打开文件,如果文件不存在则创建它 */f_res = f_open(&file, "0:FatFs STM32cube.txt", FA_CREATE_ALWAYS | FA_WRITE);if(f_res...(&file, ReadBuffer, sizeof(ReadBuffer), &fnum);}/* 不再读写,关闭文件 */f_close(&file);/* 不再使用文件系统,取消挂载文件系统 */...内容如下  代码解释 对比市场现有产品  目前再嵌入式中使用最多的存储情况:  EEPROM:  只能存放字节类型的数据:芯片为AT24CXX;采用IIC通信,存储内容类型,大小有限。

    16910

    基于V7的新版RL-USB和RL-FlashFS的NAND完整解决方案,实现更简单,用户仅需初始化FMC

    说明: 1、新版方案更加好用,不管用户使用的那家NAND,用户要做的仅仅是初始化FMC,其它读写API,擦写均衡,坏块管理,ECC校验和掉电保护都不用操心了。...3、新版RL-FlashFS V6.X相比老版本功能更强些,API更加全面(FlahFS是采用的标准C库API),已经支持删除文件,同步删除其子文件。...同时也支持EFS嵌入式文件系统,主要用于NOR型Flash。...5、RL-FlashFS与FatFS的区别: (1)FatFS仅是一个FAT类的文件件系统,擦写均衡,坏块管理,ECC校验和掉电保护都不支持。这些都需要用户自己去实现,而FlashFS都支持。...(2)RL-FlahFS操作文件名,不支持中文,而FatFS支持。 ? 6、RL-USB: ? ?

    1.2K20

    【安富莱原创开源应用第2期】基于RL-USB和RL-FlashFS的完整NAND解决方案,稳定好用,可放心用于产品批量

    其中使用掉电保护的话,请开启配置文件中的FAT Journal。 3. 在前几年的时候,有客户反应使用RL-FlashFS写入文件多后会写入越来越慢,原因是没有正确配置,加大文件名缓冲个数即可。...当前使用的短文件名的库,使用文件名的话请更换为长文件名的库,也在MDK的安装目录里面。 5....首次格式化后使用,读速度2.3MB/S左右,写速度3.2MB/S左右,配置不同的文件系统缓冲大小,速度有区别。 8. RL-FlashFS的函数是标准的C库函数,跟电脑端的文件系统使用方法一样。...RL-FlashFS与FatFS的区别,FatFS仅是一个FAT类的文件件系统,擦写均衡,坏块管理,ECC和掉电保护都不支持。     这些都需要用户自己去实现。 10....); 4 - 创建一个text文本并指定一个位置对其进行读写操作 5 - 删除文件夹和文件 6 - 测试文件读写速度 7 - 写数据到CSV文件中 8 - 从CSV文件中读数据 a - 打开NAND模拟

    2.7K40
    领券