python实现——处理Excel表格(超详细)
目录
- xls和xlsx
- 基本操作
- 1:用openpyxl模块打开Excel文档,查看所有sheet表
- 2.1:通过sheet名称获取表格
- 2.2:获取活动表
- 3.1:获取表格的尺寸
- 4.1:获取单元格中的数据
- 4.2:获取单元格的行、列、坐标
- 5:获取区间内的数据
- 获取指定区间的数据
- 获取指定行列的数据
- 按行、列获取值
- 获取活动表的行列数
- 操作
- 创建新的excel
- 修改单元格、excel另存为
- 添加数据
- 插入有效数据
- 插入空行空列
- 删除行、列
- 移动指定区间的单元格(move_range)
- 字母列号与数字列号之间的转换
- 字体样式
- 查看字体样式
- 修改字体样式
- 设置对齐格式
- 设置行高列宽
- 合并、拆分单元格
- sheet表
- 创建新的sheet(create_sheet)
- 修改sheet名字(title)
- 复制sheet表(copy_worksheet)
- 删除sheet表(remove)
- 操作多个Excel表
- 背景知识
- numpy与pandas
- xlsxwriter
- 一个Excel电子表格文档称为一个工作簿
- 一个工作簿保存在一个扩展名为.xlsx的文件中
- 一个工作簿可以包含多个表
- 用户当前查看的表(或关闭Excel前最后查看的表)称为活动表
- 在特定行和列的方格称为单元格、格子
处理Excel表格需要用到openpyxl模块,该模块需要手动安装pip install openpyxl
xls和xlsx
简单来说:
xls是excel2003及以前版本所生成的文件格式
xlsx是excel2007及以后版本所生成的文件格式
(excel 2007之后版本可以打开上述两种格式,但是excel2013只能打开xls格式)
进一步的详细解释参见:excel后缀.xls和.xlsx有什么区别
基本操作
用到的test.xlsx表格
在这里插入图片描述
1:用openpyxl模块打开Excel文档,查看所有sheet表
openpyxl.load_workbook()
函数接受文件名,返回一个workbook数据类型的值。这个workbook对象代表这个Excel文件,这个有点类似File对象代表一个打开的文本文件。
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
print(workbook.sheetnames) # 打印Excel表中的所有表# 结果:
# ['Sheet1', 'Sheet2']
2.1:通过sheet名称获取表格
在第10行,使用workbook['Sheet1']
获取指定sheet表
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
print(workbook.sheetnames) # 打印Excel表中的所有表sheet = workbook['Sheet1'] # 获取指定sheet表
print(sheet)# 结果:
# ['Sheet1', 'Sheet2']
# <Worksheet "Sheet1">
2.2:获取活动表
使用workbook.active
获取活动表
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print(sheet)# 结果:
# <Worksheet "Sheet1">
3.1:获取表格的尺寸
这里所说的尺寸大小,指的是excel表格中的数据有几行几列,针对的是不同的sheet而言
使用sheet.dimensions
获取表格的尺寸
下面打印的A1:B7是什么意思呢?
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook['Sheet1'] # 获取指定sheet表
print(sheet.dimensions) # 获取表格的尺寸大小# 结果:
# A1:B7
4.1:获取单元格中的数据
方法1:指定坐标的方式
sheet[“A1”]
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
# print(sheet.dimensions) # 获取表格的尺寸大小cell1 = sheet['A1'] # 获取A1单元格的数据
cell2 = sheet['B7'] # 获取B7单元格的数据
# cell2 = sheet['B7'].value # 另一种写法# 正确示范
# cell1.value获取单元格A1中的值
# cell2.value获取单元格B7中的值
print(cell1.value,cell2.value) # 姓名 18# 错误示范
print(cell1,cell2) # <Cell 'Sheet1'.A1> <Cell 'Sheet1'.B7>
方法2: 指定行列的方式
sheet.cell(row=, column=)方式
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
# print(sheet.dimensions) # 获取表格的尺寸大小cell1 = sheet.cell(row=1,column=1) # 获取第1行第1列的数据
cell2 = sheet.cell(row=3,column=2) # 获取第3行第4的数据# 正确示范
# cell1.value获取单元格A1中的值
# cell2.value获取单元格B7中的值
print(cell1.value,cell2.value) # 姓名 41
4.2:获取单元格的行、列、坐标
.row
获取某个格子的行数;.columns
获取某个格子的列数;.coordinate
获取某个格子的坐标;
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
# print(sheet.dimensions) # 获取表格的尺寸大小cell = sheet.cell(row=3, column=2) # 获取第3行第4的数据print(cell.value, cell.row, cell.column, cell.coordinate)'''
结果:
41 3 2 B3
'''
5:获取区间内的数据
获取单行单列数据的时候,使用一层for循环;获取多行多列、指定区间的数据时,使用两层for循环
获取指定区间的数据
- 使用
sheet['A1:A5']
拿到指定区间 - 使用两个for循环拿到数据
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:')
print(sheet)cell = sheet['A1:A5'] # 获取A1到A5的数据print(cell)# 打印A1到A5的数据
for i in cell:for j in i:print(j.value)# 结果:
# 当前活动表是:
# <Worksheet "Sheet1">
# ((<Cell 'Sheet1'.A1>,), (<Cell 'Sheet1'.A2>,), (<Cell 'Sheet1'.A3>,), (<Cell 'Sheet1'.A4>,), (<Cell 'Sheet1'.A5>,))
# 姓名
# 张三
# 李四
# 王五
# 赵六
获取指定行列的数据
- sheet[“A”] — 获取A列的数据
- sheet[“A:C”] — 获取A,B,C三列的数据
- sheet[5] — 只获取第5行的数据
下面的代码,获取一列数据的时候,使用一层for循环
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))cell = sheet['2'] # 获取第2行的数据# 打印A1到A5的数据
for i in cell:print(i.value)# 结果:
# 当前活动表是:<Worksheet "Sheet1">
# 张三
# 74
下面代码,获取两列数据的时候,使用两层for循环。注意到,两列的结果打印到一起了,可读性较差
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))cell = sheet['A:B'] # 获取AB列的数据# 打印AB列数据
for i in cell:for j in i:print(j.value)# 结果:
# 当前活动表是:<Worksheet "Sheet1">
# 姓名
# 张三
# 李四
# 王五
# 赵六
# alice
# bob
# 年龄
# 74
# 41
# 56
# 12
# 17
# 18
按行、列获取值
iter_rows()
:按行读取
iter_cols()
:按列读取
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))# 按行获取值
print('按行获取值')
for i in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=2):for j in i:print(j.value)# 按列获取值
print('按列获取值')
for i in sheet.iter_cols(min_row=2, max_row=5, min_col=1, max_col=2):for j in i:print(j.value)# 结果:
# 当前活动表是:<Worksheet "Sheet1">
# 按行获取值
# 张三
# 74
# 李四
# 41
# 王五
# 56
# 赵六
# 12
# 按列获取值
# 张三
# 李四
# 王五
# 赵六
# 74
# 41
# 56
# 12
获取活动表的行列数
方法1:使用
sheet.max_row 获取行数
sheet.max_column 获取列数
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('2.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))rows = sheet.max_row # 获取行数
column = sheet.max_column # 获取列数print(rows)
print(column)'''
结果:
当前活动表是:<Worksheet "Sheet1">
381
6
'''
方法2:自己写一个for循环
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))row = []
column = []
# 获取当前活动表有多少行
for i in sheet.rows:row.append(list(i)) # i是元组类型,转为列表# 获取当前活动表有多少列
for i in sheet.columns:column.append(list(i)) # i是元组类型,转为列表print('行数:'+str(len(row)))
print('列数:'+str(len(column)))'''
结果:
当前活动表是:<Worksheet "1号sheet">
行数:12
列数:3
'''
操作
创建新的excel
第9行代码用来指定创建的excel的活动表的名字:
- 不写第9行,默认创建sheet
- 写了第9行,创建指定名字的sheet表
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = '1号sheet'
workbook.save('1.xlsx')
修改单元格、excel另存为
第9行代码,通过给单元格重新赋值,来修改单元格的值
第9行代码的另一种写法sheet['B1'].value = 'age'
第10行代码,保存时如果使用原来的(第7行)名字,就直接保存;如果使用了别的名字,就会另存为一个新文件
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
sheet['A1'] = 'name'
workbook.save('test.xlsx')
添加数据
插入有效数据
使用append()
方法,在原来数据的后面,按行插入数据
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))data = [['素子',23],['巴特',24],['塔奇克马',2]
]
for row in data:sheet.append(row) # 使用append插入数据
workbook.save('test.xlsx')
插入空行空列
- insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入
- insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))sheet.insert_rows(idx=3, amount=2)
sheet.insert_cols(idx=2, amount=1)
workbook.save('test.xlsx')
删除行、列
- delete_rows(idx=数字编号, amount=要删除的行数)
- delete_cols(idx=数字编号, amount=要删除的列数)
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))sheet.delete_rows(idx=10) # 删除第10行
sheet.delete_cols(idx=1, amount=2) # 删除第1列,及往右共2列
workbook.save('test.xlsx')
移动指定区间的单元格(move_range)
move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))sheet.move_range('D11:F12',rows=0,cols=-3) # 移动D11到F12构成的矩形格子
workbook.save('test.xlsx')
字母列号与数字列号之间的转换
核心代码
from openpyxl.utils import get_column_letter, column_index_from_string# 根据列的数字返回字母
print(get_column_letter(2)) # B
# 根据字母返回列的数字
print(column_index_from_string('D')) # 4
举个例子:
import os
import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_stringpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('2.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))# 根据列的数字返回字母
print(get_column_letter(2)) # B
# 根据字母返回列的数字
print(column_index_from_string('D')) # 4
字体样式
查看字体样式
import os
import openpyxl
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:'+str(sheet))cell = sheet['A1']
font = cell.font
print('当前单元格的字体样式是')
print(font.name, font.size, font.bold, font.italic, font.color)'''
当前活动表是:<Worksheet "1号sheet">
当前单元格的字体样式是
等线 11.0 False False <openpyxl.styles.colors.Color object>
Parameters:
rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type='theme'
'''
修改字体样式
openpyxl.styles.Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
其中,字体颜色中的color是RGB的16进制表示
import os
import openpyxl
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print(sheet)cell = sheet['A1']
cell.font = openpyxl.styles.Font(name="微软雅黑", size=20, bold=True, italic=True, color="FF0000")workbook.save('test.xlsx')
再者,可以使用for循环,修改多行多列的数据,在这里介绍了获取的方法
import os
import openpyxl
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print(sheet)cell = sheet['A']
for i in cell:i.font = openpyxl.styles.Font(name="微软雅黑", size=20, bold=True, italic=True, color="FF0000")workbook.save('test.xlsx')
设置对齐格式
Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,'right,‘general’
垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’
import os
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))cell = sheet['A1']
alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)
cell.alignment = alignmentworkbook.save('test.xlsx')
当然,你仍旧可以调用for循环来实现对多行多列的操作
import os
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))cell = sheet['A']
alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)
for i in cell:i.alignment = alignmentworkbook.save('test.xlsx')
设置行高列宽
设置行列的宽高:
- row_dimensions[行编号].height = 行高
- column_dimensions[列编号].width = 列宽
import os
import openpyxl
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))# 设置第1行的高度
sheet.row_dimensions[1].height = 50
# 设置B列的卷度
sheet.column_dimensions['B'].width = 20workbook.save('test.xlsx')
设置所有单元格
(显示的结果是设置所有,有数据的单元格的)
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
import osos.chdir(r'C:\Users\asuka\Desktop')workbook = load_workbook('1.xlsx')
print(workbook.sheetnames) # 打印所有的sheet表
ws = workbook[workbook.sheetnames[0]] # 选中最左侧的sheet表width = 2.0 # 设置宽度
height = width * (2.2862 / 0.3612) # 设置高度print("row:", ws.max_row, "column:", ws.max_column) # 打印行数,列数
for i in range(1, ws.max_row + 1):ws.row_dimensions[i].height = height
for i in range(1, ws.max_column + 1):ws.column_dimensions[get_column_letter(i)].width = widthworkbook.save('test.xlsx')
合并、拆分单元格
合并单元格有下面两种方法,需要注意的是,如果要合并的格子中有数据,即便python没有报错,Excel打开的时候也会报错。
- merge_cells(待合并的格子编号)
- merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
import os
import openpyxl
import openpyxl.stylespath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))# 方法1:
sheet.merge_cells('A12:B13')
# 方法2:
sheet.merge_cells(start_row=12, start_column=3, end_row=13, end_column=4)# 加一个居中对齐
cell = sheet['A12']
alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)
cell.alignment = alignmentcell = sheet['C12']
alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)
cell.alignment = alignmentworkbook.save('test.xlsx')
拆分单元格的方法同上
- unmerge_cells(待合并的格子编号)
- unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
sheet表
创建新的sheet(create_sheet)
create_sheet(“新的sheet名”):创建一个新的sheet表
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))workbook.create_sheet('3号sheet') # 创建新的sheet表
print(workbook.sheetnames) # 查看所有的sheet表
workbook.save('test.xlsx')'''
当前活动表是:<Worksheet "Sheet1">
['Sheet1', 'Sheet2', '3号sheet']
'''
修改sheet名字(title)
第11行,使用title
修改sheet表的名字
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))sheet.title = '1号sheet' # 修改sheet表
workbook.save('test.xlsx')
复制sheet表(copy_worksheet)
在“操作”>“修改单元格、excel另存为”中提到了另存为,其实复制sheet表就是一个另存为的过程,你要是在12行代码保存的时候使用第7行的文件名,那么复制的sheet表就保存到自己身上,内容跟copy.xlsx一样。
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))workbook.copy_worksheet(sheet) # 复制sheet表
workbook.save('copy.xlsx')
删除sheet表(remove)
remove(“sheet名”):删除某个sheet表
要删除某sheet表,需要激活这个sheet表,即:将其作为活动表(关于活动表的定义请看前面文章开头写的有)下面8~11行代码展示了原始活动表与手动更换活动表,第13行代码删掉活动表
import os
import openpyxlpath = r"C:\Users\asuka\Desktop"
os.chdir(path) # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx') # 返回一个workbook数据类型的值
sheet = workbook.active # 获取活动表
print('当前活动表是:' + str(sheet))
sheet = workbook['3号sheet'] # 手动切换到要删除的sheet表,一旦切换,这张表就是活动表
print('当前活动表是:' + str(sheet))workbook.remove(sheet) # 删除当前活动表
print(workbook.sheetnames)
workbook.save('test.xlsx')'''
当前活动表是:<Worksheet "Sheet1">
当前活动表是:<Worksheet "3号sheet">
['Sheet1', 'Sheet2']
'''
操作多个Excel表
其实想用openpyxl玩这个,但是网上用的是别的库,就有点无语,以后熟练的话在自己写一个函数实现吧
背景知识
numpy与pandas
NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,我们需要利用Pandas进行Excel的合并
- 下面的代码生成了一个5行3列的包含15个字符的嵌套列表
(注意,第4行代码:15是等于35的,如果是15对应43,或者16对应5*3都会报错)
(注意,第5行代码,虽然5行3列是15个数据,但是可以指定数据从1开头,到16结束)
import numpy as np
import pandas as pdxx = np.arange(15).reshape(5, 3)
yy = np.arange(1, 16).reshape(5, 3)print(xx)
print(yy)'''
[[ 0 1 2][ 3 4 5][ 6 7 8][ 9 10 11][12 13 14]]
[[ 1 2 3][ 4 5 6][ 7 8 9][10 11 12][13 14 15]]
'''
- 添加表头
使用pandas库的DataFrame来添加表头。关于打印的结果,把最左侧的一列去掉之后会发现结果很和谐,这是因为最左侧的一列代表行号。此时xx变量的类型是<class ‘pandas.core.frame.DataFrame’>
import numpy as np
import pandas as pdxx = np.arange(15).reshape(5, 3)
yy = np.arange(1, 16).reshape(5, 3)
xx = pd.DataFrame(xx, columns=["语文", "数学", "外语"])
yy = pd.DataFrame(yy, columns=["语文", "数学", "外语"])
print(xx)
print(yy)'''
结果:语文 数学 外语
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11
4 12 13 14语文 数学 外语
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12
4 13 14 15
'''
- 合并两个矩阵
pd.concat(list)
括号中传入的是一个列表;
ignore_list=True
表示忽略原有索引,重新生成一组新的索引;
或者直接可以写成z = pd.concat([xx,yy],ignore_list=True);
不知道为什么失败,暂时搁浅
xlsxwriter
xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。
- 创建一个工作簿
import xlsxwriter
import ospath = r"C:\Users\asuka\Desktop"
os.chdir(path)# 这一步相当于创建了一个新的"工作簿";
# "demo.xlsx"文件不存在,表示新建"工作簿";
# "demo.xlsx"文件存在,表示新建"工作簿"覆盖原有的"工作簿";
workbook = xlsxwriter.Workbook("demo.xlsx")# close是将"工作簿"保存关闭,这一步必须有,否则创建的文件无法显示出来。
workbook.close()
- 创建sheet表
import xlsxwriter
import ospath = r"C:\Users\asuka\Desktop"
os.chdir(path)workbook = xlsxwriter.Workbook("cc.xlsx") # 创建一个名为cc.xlsx的文件
worksheet = workbook.add_worksheet("2018年销售量") # 创建一个名为“2018年销售量”的sheet表workbook.close()
- 写入数据
import xlsxwriter
import ospath = r"C:\Users\asuka\Desktop"
os.chdir(path)# 创建一个名为【demo.xlsx】工作簿;
workbook = xlsxwriter.Workbook("demo.xlsx")# 创建一个名为【2018年销售量】工作表;
worksheet = workbook.add_worksheet("2018年销售量")# 使用write_row方法,为【2018年销售量】工作表,添加一个表头;
headings = ['产品', '销量', "单价"]
worksheet.write_row('A1', headings)
# 使用write方法,在【2018年销售量】工作表中插入一条数据;
# write语法格式:worksheet.write(行,列,数据)data = ["苹果", 500, 8.9]
for i in range(len(headings)):worksheet.write(1, i, data[i])workbook.close()
python实现——处理Excel表格(超详细)相关推荐
- Python xlrd 读取 Excel 表格基础(一):获取sheet、行、列对象,读取数据类型等
Python xlrd 读取 Excel 表格基础 一:按行.按列读取Excel数据内容 前言: 1.获取工作簿.sheet对象 2.获取sheet表中行.列对象 3.读取sheet对象中所有数据 4 ...
- python处理excel表格数据-零基础使用Python读写处理Excel表格的方法
引 由于需要解决大批量Excel处理的事情,与其手工操作还不如写个简单的代码来处理,大致选了一下感觉还是Python最容易操作. 安装库Python环境 首先当然是配环境,不过选Python的一个重要 ...
- com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格
这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示. 第一步,准备材料 python3.8的安装包 一个Excel表格 第二步,安装软件 pytho ...
- [转载] Python中对 Excel 的相关详细操作(读取、写入、指定行、指定列、新增sheet工作表)
参考链接: 使用Python写入Excel工作表 工作中用到这点,就简单的整理了一下 目录 一.准备cateContent.xlsx工作簿 二.Python中关于Excel表格常用操作总结: 2.1 ...
- python批量翻译excel表格中的英文
python批量翻译excel表格中的英文 需求背景 主要设计 分析 具体实现 表格操作 请求百度翻译api 多线程 控制台显示进度 完整源码 需求背景 女朋友的论文需要爬取YouTube视频热评,但 ...
- 如何使用python批量合并excel表格
使用Python批量合并Excel表格的方法主要可以通过Pandas库来实现,具体步骤如下: 首先需要导入Pandas库和os库: import pandas as pd import os
- python操作统计excel表格,生成新excel表格
0.前言 因产品的同学试着用python统计Excel表格,但百度的程序又一直有各种问题, 所以叫我帮用python实现一个统计Excel表格程序:我之前也没有写过python操作Excel表格的程序 ...
- python快速将excel表格规范导入word
提示:快速将excel表格规范导入word python快速将excel表格规范导入word 前言 二.开发环境 三.实现步骤 1.引入库 2.代码片段 前言 最近接到一个需求,公司的统计需要一个ex ...
- python与excel表格-超简单:用Python让Excel飞起来
超简单:用Python让Excel飞起来 作者:王秀文;郭明鑫;王宇韬 编著 出版日期:2020年07月 文件大小:20.30M 支持设备: ¥45.00在线试读 适用客户端: 言商书局 iPad/i ...
- python openpyxl 读取Excel,超简单案例python openpyxl 获取表格数据
1. import openpyxl 导入openpyxl模块 import openpyxl #导入模块openpyxl 2. 获取的文件(×××.xlsx) 使用openpyxl下的方法获取Exc ...
最新文章
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(六)
- 人工智能在网络贷款中鲜为人知的事
- 【独家】孙茂松:从机器翻译到古诗生成
- 查找:对于长度为n的线性表最坏查找次数
- 我的第一个python web开发框架(6)——第一个Hello World
- 网站模型|可以帮助你以一种美丽、独特的方式展示你的网站设计。
- 许多新兴的互联网O2O企业,做的都是一些“无中生有”的事情
- C语言中extern 全局变量,二进制文件与内存,static,const对栈,内存的使用情况
- python二次开发ug_CAD二次开发(UG/Proe/其他) - 随笔分类 - 白途思 - 博客园
- 规划风险应对-规划过程组
- Android Studio第九课(学习打卡Day11)
- PYTHON——自然间断点分级法
- 如何欺骗神经网络,让它把熊猫识别为秃鹫
- 全双工与半双工带宽区别
- Android Vendor Test Suite (VTS) 的概念、作用及测试方法
- 程序员如何边工作边创业?
- 【推荐系统】HIN异构信息网络(Hetegeneous Information Network)
- C语言 结构体 来淄博旅游
- sync.Map详解
- python伪装浏览器什么意思_python浏览器伪装