十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
《用Python处理Excel表格》下篇来啦!
站在用户的角度思考问题,与客户深入沟通,找到利津网站设计与利津网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟空间、企业邮箱。业务覆盖利津地区。
身为工作党或学生党的你,平日里肯定少不了与Excel表格打交道的机会。当你用Excel处理较多数据时,还在使用最原始的人工操作吗?现在教你如何用Python处理Excel,从此处理表格再也不加班,时间缩短数十倍!
上篇我们进行了一些事前准备,目的是用Python提取Excel表中的数据。而这一篇便是在获取数据的基础上,对Excel表格的实操处理。
第9行代码用来指定创建的excel的活动表的名字:
·不写第9行,默认创建sheet
·写了第9行,创建指定名字的sheet表
第9行代码,通过给单元格重新赋值,来修改单元格的值
第9行代码的另一种写法sheet['B1'].value = 'age'
第10行代码,保存时如果使用原来的(第7行)名字,就直接保存;如果使用了别的名字,就会另存为一个新文件
插入有效数据
使用append()方法,在原来数据的后面,按行插入数据
·insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入
·insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入
·delete_rows(idx=数字编号, amount=要删除的行数)
·delete_cols(idx=数字编号, amount=要删除的列数)
move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上
举个例子:
openpyxl.styles.Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
其中,字体颜色中的color是RGB的16进制表示
再者,可以使用for循环,修改多行多列的数据,在这里介绍了获取的方法
Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,'right,‘general’
垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’
当然,你仍旧可以调用for循环来实现对多行多列的操作
设置行列的宽高:
·row_dimensions[行编号].height = 行高
·column_dimensions[列编号].width = 列宽
合并单元格有下面两种方法,需要注意的是,如果要合并的格子中有数据,即便python没有报错,Excel打开的时候也会报错。
merge_cells(待合并的格子编号)
merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
拆分单元格的方法同上
unmerge_cells(待合并的格子编号)
unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
create_sheet(“新的sheet名”):创建一个新的sheet表
第11行,使用title修改sheet表的名字
remove(“sheet名”):删除某个sheet表
要删除某sheet表,需要激活这个sheet表,即:将其作为活动表(关于活动表的定义请看前面文章开头写的有)下面8~11行代码展示了原始活动表与手动更换活动表,第13行代码删掉活动表
背景知识
numpy与pandas
NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,我们需要利用Pandas进行Excel的合并
1.下面的代码生成了一个5行3列的包含15个字符的嵌套列表
(注意,第4行代码:15是等于35的,如果是15对应43,或者16对应5*3都会报错)
(注意,第5行代码,虽然5行3列是15个数据,但是可以指定数据从1开头,到16结束)
2.添加表头
使用pandas库的DataFrame来添加表头。关于打印的结果,把最左侧的一列去掉之后会发现结果很和谐,这是因为最左侧的一列代表行号。此时xx变量的类型是
xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。
1.创建一个工作簿
2.创建sheet表
3.写入数据
python语言中的可以居中打印的方法如下:
1、首先python语言的软件。
2、随后在右上角的设置中找到打印。
3、随后在python语言中的居中打印点击打开即可。
#找到这个table_model设置表格属性,
def table_model(data):
# 合并表格 ('SPAN',(第一个方格的左上角坐标),(第二个方格的左上角坐标)),合并后的值为靠上一行的值,按照长方形合并
('SPAN',(0,0),(0,1)),
('SPAN',(1,0),(2,0)),
('SPAN',(3,0),(4,0)),
('SPAN',(5,0),(7,0)),
#设置下面两项
('ALIGN', (0, 0), (-1, -1), 'CENTER'), # 左右居中对齐
('VALIGN', (-1, 0), (-2, 0), 'MIDDLE'), # 垂直居中对齐
1. 字符串字母处理
2. 字符串填充
str.ljust(width, fillchar)、str.center(width, fillchar)、str.rjust(width, fillchar)
返回一个指定的宽度 width 「居左」/「居中」/「居右」的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。
3,字符串计数
str.count(sub, start, end)
#统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
start, end遵循**“左闭右开”**原则。
4. 字符串位置
str.endswith(suffix, start, end)和str.startswith(substr, beg, end)
#判断字符串是否以指定后缀结尾/开头,如果以指定后缀「结尾」/「开头」返回 True,否则返回 False。
5. 字符串查找
6. 字符串判断
7. 字符串拼接
str.join() #将序列中的元素以指定的字符连接生成一个新的字符串。
s1 = "-" s2 = "" seq = ("r", "u", "n", "o", "o", "b")
# 字符串序列 print (s1.join( seq )) print (s2.join( seq )) r-u-n-o-o-b runoob
8. 统计字符串长度
str.len() #返回对象(字符、列表、元组等)长度或项目个数。
9. 去除字符两侧空格
str.lstrip()、str.rstrip()、str.strip() #截掉字符串「左边」/「右边」/「左右」两侧的空格或指定字符。
str0 = ' Hello World!' str0.lstrip() 'Hello World!' str1 = 'aaaa Hello World!' str1.lstrip('a') ' Hello World!'
10. str.maketrans(intab, outtab)和str.translate(table)
str.maketrans()创建字符映射的转换表
str.maketrans()根据参数table给出的表转换字符串的字符。
str.maketrans()传入的也可以是字典
tab = {'e': '3', 'o': '4'} trantab = str.maketrans(tab) str0.translate(trantab) 'H3ll4 W4rld!'
11. 字符串替换
str.replace(old, new, max)
12. 字符分割
str.split(str, num)
13. 字符填充
str.zfill(width)
返回指定长度的字符串,原字符串右对齐,前面填充0。
1、vertical-align:middle的时候,是该元素的中心对齐周围元素的中心。
2、这里“中心”的定义是:图片当然就是height的一半的位置,而文copy字应该是基于baseline往上移动0.5ex,亦即小写字母“x”的正中心。但是很多浏览器zhidao往往把ex这个单位定义为0.5em,以至于其实不一定是x的正中心
app=my.Office.Word.GetInstance()
doc=app.Documents[0]
print doc.Name
VBA工具集.doc
doc.Tables.Count
2
table=doc.Tables[1]
table.Cell(1,1).Select()
app.Selection.MoveEnd(Unit=12, Count=4)
4
app.Selection.Cells.Shading.Texture = -10
1.my.Office.Word.GetInstance()用win32com得到Word的Application对象的实例
2.我所使用的样本word文件中包含两个Table第二个Table是想要修改的
3.table.Cell(1,1).Select()用于选中这个样表的第一个单元格
4.app.Selection.MoveEnd用于获得向右多选取4个单元格,wdCell=12,用于指示按单元格移动
5.app.Selection.Cells.Shading.Texture = -10用于执行阴影底纹的设置工作,wdTextureDiagonalUp=-10是一个代表斜向右上的底纹样式的常数