怎样提高EXCEL文件的处理速度?

我现在有一个40M左右的文件需要处理,给它添加一些数据透视表/数据对比之类的操作。

添加一个图表就卡的不行,任务管理器里面查看,消耗的资源还比不上一个游览器 :smiling_face_with_tear:

有没有什么办法让它多占用一点资源以提高处理速度。

你需要详细描述软硬件环境。

处理器:AMD Ryzen 7 5800H with Radeon Graphics 3.20 GHz
机带RAM:16.0 GB (13.9 GB 可用)
Windows 11 家庭中文版

我将其中的数据删除一半之后(20M),还是非常的卡顿,然而打开另一个36M的文件却流畅很多,就很迷。

文件内容是什么?有很多很消耗资源的公式之类的吗?

反正是做图表,后面用Python解决了,回过头去发现可能是前面插入图表的问题,本来应该是插入的折线图,实际上被插入的是柱状图,在六十多万条数据下,Excel不堪重负…

谨慎插入图表…

即使如此,Excel资源的消耗量还是比不上我正在用的游览器。

这么庞大的数据量,确实是会拖垮 Excel 的。与其去迁就这堆屎山,不如转变工作方法,屎山发展到一定程度是会炸的。

建议楼主尽可能地把这个文件的内容迁就到 Access 数据库里面,然后再利用其中的一些功能导出部分数据来,然后再做成图表。

能去迁就的永远不是屎山,而是屎。

两个月前给客户安装了一个传感器,他们非要看传感器的原始数据,再三说明了原始数据非常多,还是要这个数据,还想要这两个月的数据,客户现场还不能插U盘之类的,只能通过网络传输,厂里信号还不好。

客户要求通过Excel文件的形式给他,只好给他们导出今天的数据(还不到十二个小时的数据已经8个多G了),然后把低于某一阈值的值全舍弃掉,才缩减到几十个MB。

:smiling_face_with_tear:

1 个赞

EXCEL的图表要是包含几万个数据点,大概是撑不住的,别的操作这点数据应该不成问题。

你觉得EXCEL用的内存不够,不知道为什么一直跟浏览器比,别人也不知道你的浏览器用了多少内存。
内存问题上,主要就是你的EXCEL是32位还是64位的,它具体用了多少内存。

如果不需要宏,将文件存成xlsb格式可以好不少哦
实际我自己感觉,xlsb格式比xlsx格式的文件,
文件打开速度可以快一倍以上,文件体积小一半左右,公式运算速度节约30%。

以下是AI的总结:

XLSB 格式

优点:

  • 二进制文件格式: 与基于 XML 的 XLSX 和 XLSM 格式不同,XLSB 使用二进制文件格式,显著缩小文件大小。
  • 更快的计算速度: 二进制格式使 XLSB 文件的计算速度比 XLSX 和 XLSM 快。
  • 更好的数据完整性: XLSB 文件采用二进制格式存储数据,从而减少数据损坏的风险。
  • 较低的内存占用: 与 XLSX 和 XLSM 相比,XLSB 文件在内存中占用更少的空间。
  • 与较旧版本的 Excel 兼容: XLSB 文件可以被 Microsoft Excel 2007 及更高版本打开和编辑。

缺点:

  • 不支持宏: XLSB 不支持宏,这限制了在文件中的自动化功能。
  • 较少的第三方工具支持: 由于 XLSB 是一种较新的格式,因此受到的第三方工具支持可能较少。

与 XLSX 和 XLSM 格式的区别

特征 XLSX XLSM XLSB
文件格式 基于 XML 基于 XML 二进制
文件大小 较大 较大 较小
计算速度 较慢 较慢 较快
数据完整性 良好 良好 更好
内存占用 较高 较高 较低
宏支持 支持 支持 不支持
第三方工具支持 良好 良好 较少
兼容性 较好 较好 相对较差
2 个赞

以为是编的,没想到是真的 :joy:

一般遇到这种我都是直接导入到数据库,再来操作数据库……

文件体积和数据完整性是要好一些,读取也要快一点,但是计算速度没有区别。
最重要的错误是,xlsb支持宏,不支持的是xlsx。

再就是兼容性的问题,除微软自己的程序以外,似乎没有别人支持xlsb,微软自己的支持都不好,比如Power Query读取xlsb会出各种问题,比如小数只能读到显示的位数,甚至干脆就读不出来。
所以我一般把过程表保存成xlsb,需要发给别人的结果用xlsx。

如果有大量公式, 会因为重新计算影响excel速度.

你可以试试新建一个电子表格, 把数据以值的形式复制过去. 试试

这一点可以在【公式选项卡」—>【计算选项】里面将计算改为手动。

都2024了,涉及到大量的数据计算Excel就不能主动去借助显卡么…

哈哈。我们公司的业务就是处理我们客户之前使用电子表格总是卡得半死的电子表格。把这些电子表格做到服务端去。再添加一些厉害的分析功能。

所以,或许你发现了一个创业的机会。

1 个赞

EXCEL支持多线程,但是效果有限,因为很多计算并不能并行。
显卡就更用不上了。

之前excel限制在 65535条记录.

所以这么大的数据, 要用数据库, 而不是excel.

可以用excel里的Power Pivot,几百上千万行没问题

试试删掉没有用的空行