[从产品角度学excel 04]-单元格的“衣服”

忘记发这里了。。补发一下

这是《从产品角度学EXCEL》系列——单元格篇。

前言请看:

0 为什么要关注EXCEL的本质

1 excel是怎样运作的

2 EXCEL里的树形结构

3 单元格的秘密(文本/数字篇)

或者你可以去微信公众号@尾巴说数 获得连载目录。

本文仅由尾巴本人发布于特定网站。不接受任何无授权转载,如需转载,请先联系我,非常感谢。



抱歉之前因为有各种事情,一个多月没更新了,从今天开始恢复更新。

在前一章节里,我们通过对excel xml代码的阅读,发现在excel单元格里,文本和数字并不是一回事,而数值模式却仅仅是excel 数字的一种表现模式。

接 下来,我们继续研究excel单元格的外在表现,如字体、颜色、边框、合并单元格等。基本上,每一个单元格的格式都是可以自定义定制的。我们可以随心所欲 对单元格进行合并、调色、设置大小,就像在一个画布上自由作画一般。而这种高度可定制性,也即是excel的魅力所在。

我们接下来要做的,就是透过现象看本质,通过对单元格外观的研究,来串联起我们对单元格的理解。

1、由“style”控制的单元格外观

在上一章节里,我们在excel里输入了一个日期2009/7/7和一个百分数0.55%。

在阅读excel xml源文件里,我们发现它们还是以数值的形式储存在单元格里,只是“s”引用的数字不对。

<c r="F2" s="12"><v>40002</v></c>
<c r="I2" s="13"><v>5.4999999999999997E-3</v></c>

事实上,我们可以把这个s理解为单元格的样式(style)。这个单元格里引用的12/13,其实就是代指styles.xml文件里,第12/13个xf元素。

第十二个xf--日期
<xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>
第十三个xf-日期
<xf numFmtId="10" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1" applyAlignment="1">

我们可以看到,在这个xf元素里,规定了字体fontID、数值格式numFmtId、边框borderId、对齐方式applyAlignment等等的属性。而正是这些元素,构成了我们看到的单元格的外观。

同时有趣的是,在这个xf元素里,fontID、numFmtId、borderId等等,也是用数字去引用各个相应元素的顺序。我们可以在同一个styles.xml文件里,找到如:

<font><sz
val="9"/><name val="宋体"/><family val="3"/><charset
val="134"/><scheme val="minor"/></font>
<fill><patternFill
patternType="solid"><fgColor rgb="FFFFFF00"/><bgColor
indexed="64"/></patternFill></fill>

等等的元素。xf里的font=’0’, font=’1’,其实也就是在引用这些元素的顺序而已。

形象一点来说,对于单元格的代码关系,我们可以画出这样的一个关系图来:

如果单独解读styles.xml的结构,我们又可以画出这样的一个关系图来:

事实上,excel就是靠着这种引用的关系,把各个独立的元素串通在了一起,形成一个松散又有联系的产品整体。

2、从“style”到实际应用

在过了一下excel单元格的xml原理以后,我们回到excel的基本界面,来看看工程师是怎样布局与分布这些功能块的。

我们在excel的“开始”菜单里,可以看到关于单元格格式的大部分功能:

这些功能,大体上是与excel styles.xml里,所展示的单元格样式组合相吻合。

对于刚接触excel界面的小白来说,去尝试给单元格变个颜色、居中对齐、合并单元格、换行等等,都是非常容易的一件事情。这些东西,完完整整得都列在了excel的开始界面里,我们只要耐得下心来去与这些功能块沟通,就能轻松做出像下图这样,有多种样式的单元格。

这种通过“阅读”excel的产品界面,从而理解这个产品的设计,是从结果导向理解产品设计原理的最佳渠道。

一般做网页设计、软件开发等等,都是从最终结果出发,在设计出原型后,再逐个逐个模块进行开发组装的。软件的操作模型,往往凝聚了最多的设计精华。因此,在学习excel时,学会“阅读”excel的产品界面,可以达到事半功倍的效率。

但是需要注意的是,在读熟excel表面的功能布局以后,适当了解一下它底层的原理,能够更好的理解日常操作中会遇到的问题

1)为什么我们可以选择性粘贴单元格的数值or带格式粘贴?

在我们复制单元格的值到另一个单元格时,我们可以选择要粘贴的方式,如只粘贴数值,只粘贴公式,或者数值公式一起粘贴。

在这里,它是把单元格拆分为了:值、公式、格式、批注等基本部分。这就类似于我们通过xml看到的, value, formula, styles等。就如上文所说,这些部件在excel文件的xml代码层是分开储存,它们共同构成了单元格。

选择性粘贴,其实就是在告诉电脑,在这一次复制与粘贴过程中,我们是否需要把单元格格式引用的数值也复制过来,是否需要引用特定序列的批注,以及是否只复制里面特定格式的特定部件(如只复制边框,或者只复制合并条件等等)

理解了单元格是”装配“而成的,我们就能比较好的理解“选择性粘贴”了。

2)什么是“格式刷”?

当我们理解选择性粘贴是让我们选择复制一个单元格的哪个组件后,我们也能比较容易理解什么是单元格的“格式刷”。

本质上,格式刷就是把一个单元格引用的styles数字,原封不动得赋予另一个单元格。通过修改s=’0’,实现格式的变动,而不影响单元格的值。

3)在同一个窗口打开的excel,共同分享了一套样式

对于excel2010/2013的用户,通过开始菜单打开新的excel窗口,可以实现各个excel之间是互相独立,即使一个excel死机了,另外一个也能保持正常的状态。 (细节请见微软的文章,方法二: https://support.microsoft.com/zh-cn/kb/2227598

然而我们会发现,通过这种方式打开的独立的excel窗口,当我们在其中一个excel里复制若干单元格到另一个excel时,我们往往只能复制单元格的“值”,而无法把格式/公式一起复制过去。


实上,当我们在同一个窗口打开若干个excel时,我们实际上是在计算机的某一个部分,把若干个excel的样式组合在一起阅读与排序。然而对于不同的窗
口打开的excel,因为它们之间彼此独立,样式并没有随着复制与粘贴而过去,当我们进行不同窗口之间的复制与操作时,我们其实只进行了单元格值的转变。

4)网页复制数据时,不同的粘贴速度

同理,这个可以解释如:

从word、html等等复制表格到excel时,往往要花费比较长的时间,或者只能复制值到excel里。因为excel要进行一个格式的转化,有时候由于兼容问题还失败了。


我们要从网页复制一个有各种javascript、脚本超链接的文本到excel单元格时,稍不注意就要花费很长时间(格式转换)。但是若我们直接在单元
格文本框里键入文字内容,excel就默认只复制单元格的文本,不进行任何转换。速度会很快,而且不会把各种脚本都复制进来

譬如我们从京东商品描述页复制一整块信息:

左侧为在单元格里直接粘贴,它反映比较慢,进行了很多格式的转换。
而右侧为在文本框里直接复制网页文字,最后所有内容都集中在了一个单元格里,以纯文本的形式,速度极快。

往往当我们不想复制太多格式时,直接转为文本复制,或者直接在文本框里键入文字,是一个比较快的方法。

综上,在理解了“格式”仅仅是单元格的一个组成部分后,我们就能比较深刻地解释一些excel疑难问题。可以从产品角度学习excel了。



欢迎各位在评论里补充你们看完本章后,想到的相关问题,定期补充上去:)

接下来探讨:合并单元格、行与列等等话题。

欢迎扫码关注我的微信公众号

时间: 2024-10-10 23:03:12

[从产品角度学excel 04]-单元格的“衣服”的相关文章

[从产品角度学EXCEL 03]-单元格的秘密

这是<从产品角度学EXCEL>系列——单元格的秘密. 前言请看: 0 为什么要关注EXCEL的本质 1 EXCEL是怎样运作的 2 EXCEL里的树形结构 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布于特定网站.不接受任何无授权转载,如需转载,请先联系我,非常感谢. 在讲了excel的树形结构之后,我们终于要进入正题,研究单元格的秘密了. 当我们打开excel的时候,首先映入眼帘的就是一大片格子,这就是单元格. 在excel里,单元格承担了几乎所有的存储信息的功能.你

[从产品角度学EXCEL 01]-EXCEL是怎样运作的

这是<从产品角度学EXCEL>系列第二篇. 前言请看:从产品角度学EXCEL-系列0-为什么要关注EXCEL的本质 本文不接受无授权转载,如需转载,请先联系我,非常感谢. 1.EXCEL是怎么工作的 在序言里,我们大致讲了一下为什么要写这篇文章,以及其整体架构.而从这章开始,我们将简单看一下EXCEL是什么,以及它是怎么工作的. 从EXCEL的定义来说,它是一款用于处理数据的电子表格软件.当我们打开EXCEL时,看到的一大片方格子,就是excel所处理的主要对象——表格(spreadsheet

[从产品角度学EXCEL 00]-为什么要关注EXCEL的本质

前言 Hello 大家好,我是尾巴,从今天开始,在这里连载<从产品角度学EXCEL>的系列文章.本文不接受无授权转载,如需转载,请先联系我,非常感谢. 与世面上的大部分EXCEL教程不同的是,我们并不会太多关注于介绍EXCEL各个功能的细节,譬如表格怎么搭建.EXCEL有什么函数等等.这些知识点在各个教程里随处可见,各位只要有心,就可以很容易的找到. 相反,这系列的文章会更多关注于EXCEL这个产品,关注EXCEL的本质. 我们会尝试从一个产品设计,或者一个编程人员的角度来解剖EXCEL的内在

[从产品角度学EXCEL 02]-EXCEL里的树形结构

这是<从产品角度学EXCEL>系列第三篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布于特定网站.不接受任何无授权转载,如需转载,请先联系我,非常感谢. 2 EXCEL里的树形结构 这段时间,上海街边的树上陆陆续续长出了嫩芽,放眼望去有各种层次的绿色,格外好看.我们今天的话题,恰好也与树有关.只不过,树都是往天空伸展枝叶的,而我们这里讨论的‘树’,却是由根部出发,逐行逐行往下延展.伸展. 还记

C#.Net 导出Excel 之单元格 相关设置

range.NumberFormatLocal = "@";     //设置单元格格式为文本range = (Range)worksheet.get_Range("A1", "E1");     //获取Excel多个单元格区域:本例做为Excel表头range.Merge(0);     //单元格合并动作worksheet.Cells[1, 1] = "Excel单元格赋值";     //Excel单元格赋值range

Excel的单元格设置下拉选项并填充颜色

如何在Excel的单元格中加入下拉选项 方法/步骤   第一步:打开excel文档,选中需加入下拉选项的单元格.  第二步:点击菜单中的"数据"->"数据有效性"->"数据有效性".   第三步:在弹出的页面中设置菜单下,点击"允许"下选择"序列"按钮.   第四步:在来源中输入单元格中需设置的下拉选项,用英文的逗号","隔开,然后点击确定按钮. 即可得到我们要的效果. 怎么

EXCEL里面单元格内容太多显示不全应该怎么弄。

首先设置单元格式:在相应单元格单击右键 -> 选择"设置单元格格式(F)..." -> 选择"对齐" -> 勾选"自动换行(W)" -> 点击"确定"然后调整行高.列宽就可以了 EXCEL里面单元格内容太多显示不全应该怎么弄.,布布扣,bubuko.com

[办公应用]如何将excel合并单元格分拆后每个单元格上仍保留数据?

合并单元格虽然美观,但是无法进行排序.筛选等操作. 只有合并单元格拆分后才可以按常规进行统计.但是普通拆分后,excel仅保留合并单元格数据到区域左上角的单元格. 解决方案:选定多个合并单元格,应用本宏即可每个单元格均保留数据:Sub 拆分() Dim c As Range For Each c In ActiveSheet.UsedRange.Cells If c.MergeCells Then c.Select c.UnMerge Selection.Value = c.Value End

C#实现对EXCEL指定单元格进行操作

using System; using System.Collections.Generic; using System.Text; //先添加引用 using Microsoft.Office.Interop.Excel; using System.IO; using System.Reflection;   namespace SighExcel {     public class Sign     {         /// <summary>         /// 对Excel指定