excel shared formula处理

最近在处理excel导入(类似石墨,google文档,腾讯云等导入excel)简单来讲就是将excel文件(.xlsx  .xls)格式的文件转化为我们在线文档的处理格式。

excel中一个强大的工具就是其各种各样的公式,如下:

列举一个通用的例子

很简单,B1单元格内的值等于A1格子的值

而excel强大的地方在于,我们点击B1单元格右下角,在B列里 向下拖动

当当当,一排数据都出来了 它们都是干什么的呢?

它们会参考B1(也就是一开始我们下拉的单元格)内的公式(即=A1) 这里我们定义 

=     是B1单元格的公式模板

A1   是B1单元格内的参考坐标

而观察B2到B11 我们发现 不变的是  =A 

                                          变的是     1,2,3,4,.......(即行坐标)

反应比较快,或者对做优化(时间,空间)有经验的小伙伴可能猜到,或者开始怀疑,excel内部怎么存储这些函数呢。

可能有的小伙伴还是不太明白,这么问,excel内部是B1格子内存储=A1,B2里存储=A2,B3里存储=A3 .......以此类推,这样的存储方式呢,还是excel自己会发现规律,做进一步的简化,保留一个模板,类似函数公式去参考这个模板,替换其中的参考坐标,以减少存储占用的空间呢?

空想没啥用,实践见真招,我们看看excel内部是怎么存储的,不就结了!

怎么看excel内部是如何存储公式的呢,这里小编给大家科普一下,xls结尾的excel,实际存储格式是二进制,我们不太好搞定,但是新的xlsx,其内部存储格式是xml的。

我们用解压软件打开excel(.xlsx结尾),解压出来,目录结构如下:

根目录 excel就是我们解压的excel的名称。

各个目录做什么用的,大家可以自行google,这里比较关键,小编比较关注的是 excel -> xl -> worksheets -> sheet1.xml  以及 excel -> xl -> styles.xml 

sheet1.xml文件对应着我们excel中的页签。1就对应第一个页签

styles.xml对应整个excel各个页签中涉及到的单元格内的格式

从中我们也看出来,excel不会傻傻的把一个格子中的所有信息都存储一份,而是把通用的 设为默认,特殊的 抽取出来,单独建立一个文件,而在sheet页签xml文件读取格式的时候,根据一个唯一标识符,去styles文件中读取自己的格式,极大的节省了存储空间。

言归正传,让我们看看excel内部,这种相似公式是怎么存储的,打开sheet1.xml文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
    xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac xr xr2 xr3"
    xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"
    xmlns:xr="http://schemas.microsoft.com/office/spreadsheetml/2014/revision"
  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值