Sub a()
Dim draw As Object
For i = 1 To Sheets.Count
Sheets(i).Select
On Error Resume Next
For Each draw In ActiveSheet.Shapes
draw.Delete
Next draw
End Sub
当删除掉所有对象后,一般的表格这个时候就应该恢复正常了,不管怎样操作都和之前在Excel2007一样
当然以上三种办法无论哪一种,都是直接删除掉所有对象,如果有要保留的对象,就要考虑选择性删除了。
关于被忽略掉的部分:
实际上,还没完。
在之前的文档里,我们发现除了绘图形状以外,还有一个文件夹——ctrlProps
后来发现,这个文件夹的文件居然高达49000+个,即便压缩过后也为文件增加了不小的体积
目前猜测是这部分文件应该是兼容性检查后留下的信息,每当一个单元格的公式或者格式会有兼容性问题,就会被记录一个文件保存在ctrProps,然而诡异的是只有xlsx保存为xls才会有兼容性问题,xls保存为xlsx后由于不存在兼容性问题,兼容性检查的信息会被清空掉,为什么在这个xlsx文件里依然有这部分信息呢?难以理解。
要清理掉这部分文件也很简单,由于前面的步骤已经清理了drawings下的文件了,绘图形状已经没有了,因此只要重新将文件另存为xls,再另存为xlsx就可以了
关于实际文件读写层面的处理:(12月1日更新)
实际上上述情况产生文件体积过大和卡顿的根本原因只有两个——多余的兼容性检查信息和多余的绘图形状
在前面我说过,方法二是直接删除drawings文件夹,有人可能会问,为什么ctrlProps不能这样?
这点我无法解答,实际上从Excel修复来看,两种组件的修复逻辑是不一样的,drawings在修复的时候看的是文档里有没有记录drawing的相关信息,如果没有,就在[Content_Types].xml里直接删掉组件与主文档的关联
而ctrlProps就不一样,就算删掉了文件夹,由于[Content_Types].xml有该部分组件与主文档的关联,Excel会试着尝试重新检查兼容性,但是由于Excel尝试修复的次数是有上限的,因此修复完成的文档你会发现这部分兼容性信息又回来了,而更多的情况可能是因为超过修复次数上限导致修复失败认为文件已损坏
是的,完全不一样
drawings其实跟[Content_Types].xml一点关系也没有
drawings在文件里确实是保存在xl路径下的,但是与文档的关联并不在[Content_Types].xml,而是在xl\worksheets\下每一个sheet*.xml文件里
(sheet*.xml里部分drawing信息)
这也就是为什么直接删掉drawings文件夹后,Excel在修复时会直接删掉所有绘图形状。因为对应的信息没有了,Excel认为这部分数据完全丢失无法复原了,因此直接删掉了绘图形状
这个修复逻辑像极了批注的修复逻辑
然而ctrlProps不一样
文档的兼容性信息是写进[Content_Types].xml里的,如果丢失了会强制修复,因此这部分信息暴力删除不可取,只能以另存为的方法得到干净的[Content_Types].xml后替换原有的[Content_Types].xml,再删除ctrlProps才能顺利删掉这部分多余的信息
就在本周,同事跟我说了个非常神奇的现象,之前做的表格在公司的电脑上打开没有任何问题,但是到了自己的笔记本上打开反而非常卡,卡到连工作表都切不动,随便动一下就程序未响应,于是找我说了下这个事情。我要他把有问题的文档发给我我看下,同时我们确认了两台电脑环境差异和文件异常的地方:1、公司的电脑是Excel2007,同事自己的笔记本是Excel20192、文件体积相比同类型文件大了至少三倍3、Excel2007打开以后操作非常流畅,但是到了Excel2019就非常卡顿4、笔记本上甚至连点这个文件右键菜单
POI导出的excel文件,用WPS打开没有问题,但是用Microsoft office打开,就提示上面的问题,选“否”就打不开,选“是”之后,里面的部分样式就没有了,还有这么一个提示。
所以我这个的问题是出在样式上,如果你的文件是有其他的问题,那你现在就可以叉掉这个页面了。
这个问题说起来很简单,同事要求我对一些单元格设置自定义格式,然后就把两个自定义格式发给我了,
“#,##0,;[红色](#,##0,)”,“0.0%;[红色](0.0%)”
我一看,这很简单啊,直接复制过去就开始用,而且因为我是用.
Office2010 office2013 word2010 word2013 卡顿 无响应 反应慢的解决 办法
手动删除 Normal.dot(或 Normal.dotm)。
可点击开始-->运行-->输入“%userprofile%\Application Data\Microsoft\Templates”访问该文件夹,删除
后,下次再进入,word 会自动新建一个
Excel里插入图片是悬浮在单元格上的,如果超出格子大小了还不能跟着排序,而单元格大小是有上限的,用openxyl也查看不到图片,所以就想办法把图片提取出来。
首先先把后缀改成zip,然后解压缩,就可以看到图片都在xl/media这个目录里放着了
但是图片的顺序是按照插入时间来排的,并不一定是按照行列,如果你就是按顺序插入的话就可以直接用了,但如果不是的话,就还需要找到对应的行列号。
方法就是查看xml文件,这个文件是xl/drawings/drawing1.xml,这里面包含了row和col,还有rId,
原文出自https://www.jeremyjone.com/395/ , 转载请注明。
最近写web,有一个上传和下载Excel的功能,找了半天,下载好说,附带图片也能下载,毕竟html可以直接编译成table,然后整个table通过js-xlsx直接下载到本地。
但是上传就不同了,上传需要操作文件,js并没有足够的能力。我直接把文件传到后端用C#操作。
然而,C#可以读出文本内容和图片,...
一、问题描述
1.WPS处理大型文件时显得力不从心,所以安装了office2016,但是在打开新版的Office的Excel、PowerPoint、Word时发现启动特别慢,有时候需要十几秒钟才能打开,那么该如何解决这个问题?以下带来几个设置,修改以后速度明显提升
Excel 表格卡顿可能是由于多种原因引起的,例如表格过大、计算公式复杂、电脑配置不足等。因此,修复 Excel 表格卡顿可能需要针对具体情况采取不同的措施。
以下是一个简单的批处理脚本,可以尝试优化 Excel 的运行速度,从而解决表格卡顿问题:
@echo off
echo 正在关闭后台 Excel 进程...
taskkill /f /im excel.exe
echo 正在清理 Excel 自动备份文件...
del /q "%APPDATA%\Microsoft\Excel\*.xar"
echo 正在清理系统临时文件...
del /q "%TEMP%\*.*"
echo 正在清理 Windows 更新缓存...
net stop wuauserv
del /q "%windir%\SoftwareDistribution\Download\*.*"
net start wuauserv
echo Excel 优化完成!
这个脚本会关闭 Excel 后台进程,清理 Excel 自动备份文件、系统临时文件和 Windows 更新缓存,从而释放系统资源,提升 Excel 运行速度。你可以将这段代码保存为一个 .bat 文件,双击运行即可。
但是请注意,执行这个脚本可能会导致你失去一些未保存的 Excel 数据,因此在执行之前请先保存好 Excel 表格。另外,如果这个脚本无法解决你的 Excel 表格卡顿问题,建议你考虑优化表格结构或者升级电脑硬件配置。