有一个特定的Excel文件被我公司的许多员工使用。 它是从Excel 2003和2007中编辑的,打开“共享”function以允许一次写入多个作者。
这个文件在一些基本的格式上有几页数据,过去大概是6MB,这对于其内容来说似乎是合理的。 但经过几个星期的编辑,文件增长到10,然后20 MB,并最终猛增到超过150 MB,即使它仍然有大约相同数量的数据。 现在需要5-10分钟才能打开,而且要花费很多时间来保存它。
第一次发生这种情况时,我将每张表的内容复制到一个新的空白工作簿中,并保存了新的工作簿; 这使它回落到6MB左右。 现在,它又炸了起来。
工作簿使用“数据validation”function将某些列中的值限制为几个命名范围的内容。 将所有数据复制到一个新的工作簿意味着重新设置所有的数据validation,这是一个痛苦,而不是我们每个月想要做的事情。
作为故障排除步骤,我尝试以“XML Spreadsheet 2003”格式保存文件,希望能够深入了解存储的内容。 果然,档案几乎是一场演出,几乎所有的1000万行都是这样的:
<NamedCell ss:Name="Z_21D5114F_E50C_46AC_AA4F_C3FF540C717F_.wvu.FilterData"/> <NamedCell ss:Name="Z_1EE2BA5E_3011_4F9A_8ACD_E58835250FC4_.wvu.FilterData"/> <NamedCell ss:Name="Z_1E3BDCEA_6A72_4ECC_BF4F_7B03CC66181E_.wvu.FilterData"/>
我已经看到一些VBScripts联机pipe理和枚举隐藏在Excel的内置界面中的命名单元格,但我不知道他们将如何处理我的1000万个命名单元格。 但是,我真正需要的是了解这种情况继续发生的原因。 什么行动在Excel中可能造成这种情况?
更新:
这是我尝试的一个实验,提供了更多的细节:
所以,这似乎是一个'03特定的问题,以'03格式保存文件立即重新创build了一堆明显不在'07文件中的垃圾。
跟我说:Excel不是数据库。
你遇到了软件的devise限制:它只有很多的存储交易数据的能力,所以当多个人写信给它的时候,它必须存储一个frickton信息以便协调。 你有这么多的数据,交易副本是巨大的。
微软假设(正确),如果你有这么多的数据,它存储在一个数据库,而你只是使用Excel作为前端。
如果你要这样工作,至less应该敲一个Access数据库。 它会为你节省一个头痛的世界,因为它意味着像那样工作而Excel不是。
@Josh:是的,它绝对是漏水的。 当你分享一个文件,它必须跟踪每个用户所做的修改…我将这个称为“交易数据”,但你可以把它想成历史。 由于没有“官方”版本,所以它始终保持跟踪变化,并且文件在一家甜甜圈店中比Kirstie Alley更快地膨胀起来。
这是devise。 有人可能会告诉你如何使其停止,但最好的解决办法就是不要使用Excel来持续维护数据。 这不是真正的devise。
我同情你的问题,但是向上级解释问题并制定新的程序是一个更好的解决办法,而不是试图延长不幸的黑客行为。
@Josh:如果您只想缩小一次,暂时复制所有数据,并将其粘贴到新的电子表格中。 这将杀死所有的元数据,保证(确保你不select整个表格,但只有数据的部分)但这是一个临时的解决scheme充其量。
看起来像是遇到了自定义视图问题。 看到:
如何删除_#wvu#FilterData的东西?
http://www.tech-archive.net/Archive/Excel/microsoft.public.excel/2006-12/msg00704.html
如何禁用自定义视图? (滚动)
http://www.eggheadcafe.com/software/aspnet/30197438/how-do-i-disable-custom-v.aspx
为了快速临时解决问题,您可以closures共享并保存文件,看是否会丢弃额外的行李吗? 为了更好的解决scheme,你需要把它变成一个数据库。 如果您没有时间和专业知识来创build数据库,您是否看过Google的电子表格? 他们只是重写它,以更好的多用户同时编辑。
您也可能想要从“文件”菜单中查看“另存为…”。
Excel以及Word和其他Office成员可以将文件中的撤消历史logging保存一段时间。
所以,做一个“另存为…”,select一个新的文件名,然后比较两个文件的大小。 如果新的缩小了,就像我所期望的那样,把它移回原来的那个,然后继续你的快乐。
其他评论者是正确的,但是,当他们指出,Excel 不是一个数据库。 是的,它可以像一个一样工作,并且对于小数据集来说是很好的。 但是对于你所描述的,你需要迁移到一个新的解决scheme。
附加信息:
任何计算,所有格式化以及其他任何types的“使其执行此操作”都会增加存储开销。 如果这些types的东西与工作簿相关联,则1 MB表格将快速增长到100 MB。
尝试这个
这是否解决了这个问题?