一提到电子表格,可能立刻想到的是excel。殊不知,电子表格,还是“历史悠久”的呢,比word要长久多了。根据维基百科的记载整理一个简史:
VisiCalc是第一个电子表格程序,用于苹果II型电脑。由丹·布李克林(Dan Bricklin)和鮑伯·法蘭克斯頓(Bob Frankston)發展而成,1979年10月跟著蘋果二號電腦推出,成為蘋果二號電腦上的「殺手應用軟體」。
接下来是Lotus 1-2-3,由Lotus Software(美國蓮花軟體公司)於1983年起所推出的電子試算表軟體,在DOS時期廣為個人電腦使用者所使用,是一套殺手級應用軟體。也是世界上第一个销售超过100万套的软件。
然后微软也开始做电子表格,早在1982年,它推出了它的第一款電子制表軟件──Multiplan,並在CP/M系統上大獲成功,但在MS-DOS系統上,Multiplan敗給了Lotus 1-2-3。
1985年,微软推出第一款Excel,但它只用於Mac系統;直到1987年11月,微软的第一款適用於Windows系統的Excel才诞生,不过,它一出来,就与Windows系统直接捆綁,由于此后windows大行其道,并且Lotus1-2-3遲遲不能適用於Windows系統,到了1988年,Excel的銷量超過了1-2-3。
尽管Excel已经发展了很多代,提供了大量的用戶界面特性,但它仍然保留了第一款電子制表軟件VisiCalc的特性:行、列組成單元格,數據、與數據相關的公式或者對其他單元格的絕對引用保存在單元格中。
由于微软独霸天下,Lotus 1-2-3已经淡出了人们的视线,甚至于误认为历史就是从微软开始的。
其实,除了微软的电子表格,在Linux系统中也有很好的电子表格,google也提供了不错的在线电子表格(可惜某国内不能正常访问)。
从历史到现在,电子表格都很广泛的用途。所以,python也要操作一番电子表格,因为有的数据,或许就是存在电子表格中。
安装第三方库,当然用法力无边的pip install
如果最终看到下面的提示,恭喜你,安装成功。
第一步,当然是要引入模块,用下面的方式:
接下来就用Workbook()
类里面的方法展开工作:
请回忆Excel文件,如果想不起来,就打开Excel,我们第一眼看到的是一个称之为工作簿(workbook)的东西,里面有几个sheet,默认是三个,当然可以随意增删。默认又使用第一个sheet。
每个工作簿中,至少要有一个sheet,通过这条指令,就在当前工作簿中建立了一个sheet,并且它是当前正在使用的。
还可以在这个sheet后面追加:
在Excel文件中一样,创建了sheet之后,默认都是以"Sheet1"、"Sheet2"样子来命名的,然后我们可以给其重新命名。在这里,依然可以这么做。
此时,可以使用下面的方式从工作簿对象中得到sheet
整理一下到目前为止我们已经完成的工作:建立了工作簿(wb),还有三个sheet。还是显示一下比较好:
Sheet2这个sheet之所以排在了第二位,是因为在建立的时候,用了一个加塞的方法。这跟Excel中差不多少,如果sheet命名了,就按照那个名字显示,否则就默认为名字是"Sheet1"形状的(注意,第一个字母大写)。
也可以用循环语句,把所有的sheet名字打印出来。
如果读者去dir(wb)
工作簿对象的属性和方法,会发现它具有迭代的特征__iter__
方法。说明,工作簿是可迭代的。
为了能够清楚理解填数据的过程,将电子表中约定的名称以下图方式说明:
对于sheet,其中的cell是它的下级单位。所以,要得到某个cell,可以这样:
如果B4这个cell已经有了,用这种方法就是将它的值赋给了变量b4;如果sheet中没有这个cell,那么就创建这个cell对象。
请读者注意,当我们打开Excel,默认已经画好了好多cell。但是,在python操作的电子表格中,不会默认画好那样一个表格,一切都要创建之后才有。所以,如果按照前面的操作流程,上面就是创建了B4这个cell,并且把它作为一个对象被b4变量引用。
如果要给B4添加数据,可以这么做:
因为b4引用了一个cell对象,所以可以利用这个对象的属性来查看其值:
要获得(或者建立并获得)某个cell对象,还可以使用下面方法:
刚才已经提到,在建立了sheet之后,内存中的它并没有cell,需要程序去建立。上面都是一个一个地建立,能不能一下建立多个呢?比如要类似下面的:
就可以如同切片那样来操作:
可以用下面方法看看创建结果:
这是按照横向顺序数过来来的,即A1-B1-C1,然后下一横行。还可以用下面的循环方法,一个一个地读到每个cell对象:
也可以用sheet对象的rows
属性,得到按照横向顺序依次排列的cell对象(注意观察结果,因为没有进行范围限制,所以是目前sheet中所有的cell,前面已经建立到第四行了B4,所以,要比上面的操作多一个row):
用sheet对象的columns
属性,得到的是按照纵向顺序排列的cell对象(注意观察结果):
不管用那种方法,只要得到了cell对象,接下来就可以依次赋值了。比如要将上面的表格中,依次填写上1,2,3,...
报错了。什么错误。关键就是没有注意观察上面的结果。tuple里面是以tuple为元素,再里面才是cell对象。所以,必须要“时时警醒”,常常谨慎。
如此,就给每个cell添加了数据。查看一下,不过要换一个属性:
虽然看着有点不舒服,但的确达到了前面的要求。
把辛苦工作的结果保存一下吧。
如果有同名文件存在,会覆盖。
此时,可以用Excel打开这个文件,看看可视化的结果:
如果已经有一个.xlsx文件,要读取它,可以这样来做:
针对电子表格的第三方库,除了上面这个openpyxl之外,还有别的,列出几个,供参考,使用方法大同小异。
下面两个用来处理.xls格式的电子表表格。
中经常需要使用到引用公式的技巧,公式具体该如何进行引用呢?接下来是学习啦小编为大家带来的excel表格引用公式的步骤_表格中引用的函数公式,供大家参考。
excel表格引用公式方法图1
引用公式步骤1:excel数据相对引用。这种最为简单,通常大家都知道,就是普通的公式计算。
1)、在d2单元格中需要计算:数据一和数据二的平均数与数据三的差。就可以输入
其中,括号必须是英文状态或者是半角中文状态,其中的列号ABC输入大小写没有关系,都会自动变成大写。如果求和的数据过多则不要用加号了,用sum求和函数较为方便。(求括号内英文冒号两侧的单元格之间的数据之和)sum函数不但可以求横向的行之和、竖向的列之和,还可以求对角线所辖区域的矩形区域之和。
2)、计算:数据一、数据二、数据三的最大值与最小值的差,可以输入:
其中,max是求最大值函数,min是求最小值函数。和sum一样,这两个函数都支持对角线所辖区域矩形的数据运算。
3)、计算:如果数据一大于1500,则综合数据是数据一、数据二、数据三求和,若数据一介于1000至1500之间则计算数据一和数据二之和,若数据一低于1000,则只记录数据一的结果。(这个例子在公司计算工资的时候很常用,但是要非常小心边界的判断,需要的时候可以用>=表示大于等于,用<=来表示小于等于)关于这个if判断语句的写法要非常小心括号的运用,我们可以在有图早期的一篇个人所得数计算公式中看到多次嵌套的运用。
这三个例子主要是介绍大家常见的三种模式:直接运算,用excel的函数进行运算,用程序语句进行运算。(这种提法是我自己随便想的,不一定有真正的三中模式之说。)
excel表格引用公式方法图2
excel表格引用公式方法图3
引用公式步骤2:excel数据的绝对引用。参加了办公自动化培训班的朋友和自学excel的朋友应该对他不陌生。举例说明一下,还以上面的那些数据为例:
计算数据一中每个数据与最大值的差。(呵呵,也很常用的,就是计算平级的人或者部门之间的差距)
我们一般会在d2单元格输入
可是我们无法通过拖动,生成但d3、d4、d5等下面单元格的数据,当我们拖动的时候,在d3单元格变成了
这显然不是我们要的,我们在d3单元格想要的是
所以,我们可以使用$来固定那些需要不变的数据,如上面a2单元格的公式就可以写成
随你怎样拖动,max计算的区域就不会变化了。如果你想固定的更牢靠一点,可以在列标号前加$。
excel表格引用公式方法图4
引用公式步骤3:同文件内excel表间引用。同文件内不同表之间的数据引用和计算通常是使用英文状态的引号表名结合而来的,例如本例中:
引用表1当中的a列数据,可以在a2单元格输入
其中英文单引号中为表的名字,表和单元格名称间用英文的!分割开来。
excel表格引用公式方法图5
引用公式步骤4:不同文件间的excel引用。使用英文的中括号 [ ]来引用文件,如我们将正在操作的文件保存到d盘,默认名字为book1.xls 新建一个excel文件,引用book1.xls文件中第一列的数据:
此例和上面的例子中英文的单引号 ' 可要可不要,不过excel默认都会给加上,另外本例中,当我们输入完公式,打回车键之后,excel会自动加上文件地址,如本例中可能会变为:
excel表格引用公式方法图6
一、Excel基本公式
4、从输入的身份证号码内让系统自动提取性别,可以输入以下公式:
5、学期总评: =K2_0.3+M2_0.3+N2_0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩;
说明:COUNTIF函数也可计算某一区域男、女生人数。
11、标准差: =STDEV(K2:K56) ——求K2到K56区域(55人)的成绩波动情况(数值越小,说明该班学生间的成绩差异较小,反之,说明该班存在两极分化);
12、条件求和: =SUMIF(B2:B56,"男",K2:K56) ——假设B列存放学生的性别,K列存放学生的分数,则此函数返回的结果表示求该班男生的成绩之和;
——假设C列(C3:C322区域)存放学生的性别,G列(G3:G322区域)存放学生所在班级代码(1、2、3、4、5),则此函数返回的结果表示求一班的男生人数;这是一个数组函数,输完后要按Ctrl+Shift+Enter组合键(产生“{……}”)。“{}”不能手工输入,只能用组合键产生。
———假设D列存放学生的出生日期,E列输入该函数后则产生该生的周岁。
15、在Word中三个小窍门:
①连续输入三个“~”可得一条波浪线。
②连续输入三个“-”可得一条直线。
连续输入三个“=”可得一条双直线。
一、excel中当某一单元格符合特定条件,如何在另一单元格显示特定的颜色比如:
A1〉1时,C1显示红色
1、单元击C1单元格,点“格式”>“条件格式”,条件1设为:
2、点“格式”->“字体”->“颜色”,点击红色后点“确定”。
3、点“格式”->“字体”->“颜色”,点击绿色后点“确定”。
点“格式”->“字体”->“颜色”,点击黄色后点“确定”。
4、三个条件设定好后,点“确定”即出。
二、EXCEL中如何控制每列数据的长度并避免重复录入
1、用数据有效性定义数据长度。
用鼠标选定你要输入的数据范围,点"数据"->"有效性"->"设置","有效性条件"设成"允许""文本长度""等于""5"(具体条件可根据你的需要改变)。
还可以定义一些提示信息、出错警告信息和是否打开中文输入法等,定义好后点"确定"。
2、用条件格式避免重复。
这样设定好后你输入数据如果长度不对会有提示,如果数据重复字体将会变成红色。
三、在EXCEL中如何把B列与A列不同之处标识出来?
(一)、如果是要求A、B两列的同一行数据相比较:
假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为:
“单元格数值” “不等于”=B2
点“格式”->“字体”->“颜色”,选中红色,点两次“确定”。
用格式刷将A2单元格的条件格式向下复制。
B列可参照此方法设置。
(二)、如果是A列与B列整体比较(即相同数据不在同一行):
假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为:
点“格式”->“字体”->“颜色”,选中红色,点两次“确定”。
用格式刷将A2单元格的条件格式向下复制。
B列可参照此方法设置。
按以上方法设置后,AB列均有的数据不着色,A列有B列无或者B列有A列无的数据标记为红色字体。
四、EXCEL中怎样批量地处理按行排序
假定有大量的数据(数值),需要将每一行按从大到小排序,如何操作?
由于按行排序与按列排序都是只能有一个主关键字,主关键字相同时才能按次关键字排序。所以,这一问题不能用排序来解决。解决方法如下:
1、假定你的数据在A至E列,请在F1单元格输入公式:
用填充柄将公式向右向下复制到相应范围。
你原有数据将按行从大到小排序出现在F至J列。如有需要可用“选择性粘贴/数值”复制到其他地方。
注:第1步的公式可根据你的实际情况(数据范围)作相应的修改。如果要从小到大排序,公式改为:=SMALL($A1:$E1,COLUMN(A1))
五、巧用函数组合进行多条件的计数统计
例:第一行为表头,A列是“姓名”,B列是“班级”,C列是“语文成绩”,D列是“录取结果”,现在要统计“班级”为“二”,“语文成绩”大于等于104,“录取结果”为“重本”的人数。统计结果存放在本工作表的其他列。
六、如何判断单元格里是否包含指定文本?
假定对A1单元格进行判断有无"指定文本",以下任一公式均可:
求某一区域内不重复的数据个数
例如求A1:A100范围内不重复数据的个数,某个数重复多次出现只算一个。有两种计算方法:
二是利用乘积求和函数:
七、一个工作薄中有许多工作表如何快速整理出一个目录工作表
1、用宏3.0取出各工作表的名称,方法:
Ctrl+F3出现自定义名称对话框,取名为X,在“引用位置”框中输入:
2、用HYPERLINK函数批量插入连接,方法:
在目录工作表(一般为第一个sheet)的A2单元格输入公式:
将公式向下填充,直到出错为止,目录就生成了。
1,选定需要输入公式的单元格。
2,在所选的单元格中输入等号"="。
3,输入公式内容。如果计算中用到单元格中的数据,可用鼠标单击所需引用的单元格。
4,公式输入完后,按Enter键,Excel自动计算并将计算结果显示在单元格中,公式内容显示在编辑栏中。鼠标点击该单元格,上面函数栏中就显示该单元格的公示内容。
方法二、利用公式选项板
1,如果输入的公式中含有了函数,那么应用公式选项板则能更好的输入公式。下面以自动求和这个最常用的计算公式来为大家举例说明。
2,将光标放在求和结果的单元格上。然后按住鼠标左键不放,向左拖动鼠标,选择自己想要求和的区域。
3,点击工具栏中的求和按钮。
4,求和结果就会在单元格中显示出来了。在计算连续单元格的数据之和时,如果在求和区域内单元格中数字有改变,自动求和结果会自动更新。
excel表格引用公式的方法步骤相关:
更多“在Excel中,当前工作表是Sheet1,若在A3单元格引用工作表Sheet2的A1单元格数据,则应在Sheet1的A3单”相关的问题
要在Excel的当前工作表(sheet1)的A1单元格中引用另一个工作表(sheet2)中的A1到A4单元格的和,则在当前工作表的A1单元格中输入的表达式为( )
在Excel中,有公式“=(C4+D4+E4)*Sheet3!F2”这说明了当前单元格的公式中引用到工作表“Sheet3”的F2的数据。也就是,()。
B.同工作表单元格地址的引用
C.跨工作表的单元格地址的引用
A.共引用了2张工作表的5个单元格的数据B.共引用了2张工作表的11个单元格的数据C.共引用了3张工作表的5个单元格的数据D.共引用了3张工作表的11个单元格的数据
下列选项中,属于对Excel工作表单元格绝对引用的是()。
此题为多项选择题。请帮忙给出正确答案和分析,谢谢!
在Windows系统中,“回收站”是_______中开辟的一个存储区。
Excel中,用一个函数求区域D4:D200和F4:F200中数值平均值的计算公式是
要删除Excel当前单元格中的格式,应使用“编辑”菜单中的______命令。
Excel中选择“文件”菜单中的“______”命令可以设置打印方向、纸张大小、页边距、页眉和页脚等信息。