app=xw.App(visible=True,add_book=False)#新建工作簿
app.display_alerts=False#关闭用户提示
app.screen_updating=False#关闭屏幕刷新
FilePath=r'example.xlsx'#文件路径
wb=app.books.open(FilePath)#打开Excel文档
wb.save('example.xlsx')#另存为
wb.close()#关闭工作簿
app.quit()#退出Excel
2、读写Excel内容
2.1 读取Excel单元格内容
import xlwings as xw
app=xw.App(visible=False,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
#读取excel内容
value=[]
value.append(sheet.used_range.value)#读取有效部分
value.append(sheet['A3'].value)#A3单元格内容
value.append(sheet['A1:B5'].value)#A1到B5单元格内容
value.append(sheet[:10,:9].value)#以A1为起始点,行10格,列9格单元格内容
value.append(sheet.range(2,2).value)#行第2格,列第2格单元格内容
value.append(sheet.cells(2,2).value)#行第2格,列第2格单元格内容
#A1到B2的内容
value.append(sheet.range(sheet.cells(1,1),sheet.cells(2,2)).value)
#A1到B2的内容,可直接省略sheet.cells
value.append(sheet.range((1,1),(2,2)).value)
#循环输出内容
for ValueItems in value:
print(ValueItems,'\n')
wb.save('example.xlsx')#另存为
wb.close()#关闭工作簿
app.quit()#退出Excel
2.2向Excel写入内容
import xlwings as xw
app=xw.App(visible=False,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
sheet.range('A20').value='Hello xlwings!'#A20的位置写入
sheet.range('A21').value=[1,2,3]#A21位置按横向连续写入
#A30到A32纵向连续写入,注意列表的维度必须为2,且内容需要放在第2个维度里
#[4,5,6]效果也会是横向写入
sheet.range('A30:A32').value=[[4],[5],[6]]
sheet.range('A22').options(transpose=True).value=[1,2,3]#纵向写入的第二种方式
#以A28为起始位置,输入表格
sheet.range('A28').options(expand='table').value=[[1,2],[3,4]]
wb.save('example.xlsx')#另存为
wb.close()#关闭工作簿
app.quit()#退出Excel
3、各元素常用的方法和属性
3.1 book的常用方法和属性
xlwings.Book(fullname=None, update_links=None, read_only=None,
format=None, password=None, write_res_password=None,
ignore_read_only_recommended=None, origin=None, delimiter=None,
editable=None, notify=None, converter=None, add_to_mru=None,
local=None, corrupt_load=None, impl=None, json=None)
fullname
(
str
or
path-like object
,
default None
)–现有工作簿的完整路径或名称(包括。xlsx, xlsm等)或未保存的工作簿的名称。 如果没有完整路径,将在当前工作目录中查找文件。
update_links
(
bool
,
default None
)–如果省略该参数,将提示用户指定如何更新链接
read_only
(
bool
,
default False
) –True表示以只读模式打开工作簿
format
(
str
)–如果打开文本文件,则指定分隔符
password
(
str
)—密码打开受保护的工作簿
write_res_password
(
str
) –写入保存时的密码
ignore_read_only_recommended
(
bool
,
default False
) –只读推荐关闭
origin
(
int
)–仅适用于文本文件。 指定它的起源位置。 使用平台常数。
delimiter
(
str
) —如果format参数为6,则指定分隔符。
editable
(
bool
,
default False
) —此选项仅适用于遗留的Microsoft Excel 4.0插件。
notify
(
bool
,
default False
) —如果文件无法以读写方式打开则通知用户。
converter
(
int
) -打开文件时要尝试的第一个文件转换器的索引。
add_to_mru
(
bool
,
default False
) -将此工作簿添加到最近添加的工作簿列表中。
local
(
bool
,
default False
) —如果为True以Excel语言保存文件,否则以VBA语言保存文件。 不支持macOS
corrupt_load
(
int
,
default xlNormalLoad
) —可以是“xlNormalLoad”、“xlRepairFile”或“xlExtractData”的其中一个。 不支持macOS。
json
(
dict
) 一个JSON对象,由MS Office Scripts或谷歌Apps Script xlwings模块交付,但以反序列化的形式,即作为字典。
import xlwings as xw
def my_macro():
wb = xw.Book.caller()#另VBA反选调用Python函数
wb.sheets[0].range('A1').value = 1
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
wb.activate()
wbFilePath=wb.fullname#现有工作簿的完整路径或名称(包括。xlsx, xlsm等)
wbFileName=wb.name#获取工作簿的文件名称
#sheets为表单列表,调用时里面可以输入表单名称或表单位置Index
wb.sheets[1].select()
Apiobject=wb.api#返回正在使用引擎的本机对象(或obj)
Appobject=wb.app#返回一个代表Book创建者的应用程序对象。
wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
wb.close()#关闭工作簿
app.quit()#退出Excel
print(wbFilePath)
print(wbFileName)
print(Apiobject)
print(Appobject)
3.2 sheet的常用方法和属性
class xlwings.Sheet(sheet=None, impl=None)
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
sheet.activate()#指定sheet为当前sheet
wb.sheets.add(after=sheet)#在指定sheet后面新增sheet
wb.sheets.add(before=sheet)#在指定sheet前面新增sheet
wb.sheets.add(name='2')#新工作表的名称。 如果为None,则默认为Excel的默认名称。
sheet.autofit('c')#rows 或者r,行自动调整适应大小
sheet.autofit('r')#Column或者c,列自动调整适应大小
sheet.autofit()#行列均自适应,不用传值
cells=sheet.cells(1,1)#单元格对象
chart=sheet.shapes#图表对象
sheet.clear()#清空表格内容
sheet.clear_contentser()#清理内容保留格式
sheet.copy()#使用方式与add类似
sheet.delete()#删除sheet
SheetName=sheet.name#sheet名称
SheetPicture=sheet.pictures#sheet图像对象
SheetRange=sheet.range('A1:B32')#sheet范围对象
sheet.select#选择当前sheet
SheetShapes=sheet.shapes#sheet图形对象
Sheettables=sheet.tables#sheet表格对象
#转换成PDF,属性path为路径,show为转后是否打开
#Quality为文件质量,可以为'standard'或'minimum'
sheet.to_pdf()
SheetUsed_range=sheet.used_range#有使用到范围对象
sheet.visible=False#sheet是否显示或隐藏,False为隐藏
print(cells.value)
print(chart)
print(SheetName)
print(SheetRange.value)
print(SheetUsed_range.value)
wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
wb.close()#关闭工作簿
app.quit()#退出Excel
3.3 range的常用方法和属性
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
#各种赋值方式
Range=sheet.range('A1')
Range=sheet.range('A1:C3')
Range=sheet.range((1,1))
Range=sheet.range((1,1), (3,3))
Range=sheet.range(sheet.range('A1'), sheet.range('B2'))
Range.value=1#范围赋值
adress='www.baidu.com'#超链接地址
text_to_display ='百度地址'#超链接的地址。 要为超链接显示的文本。 默认为超链接地址。
#当鼠标指针暂停在超链接上时显示的屏幕提示。
#默认设置为' <地址> -单击一次即可follow。 点击并按住选择这个单元格。
screen_tip="跳转到百度"
Range.add_hyperlink(adress,text_to_display,screen_tip)#添加超链接
Rangehyperlink=sheet.range('A1').hyperlink#获取范围超链接,仅限单格
Rangeadress=Range.address#获取范围地址
Range.autofit()#范围自适应
Range.clear()#范围清空
Range.clear_contents()#清空内容保留格式
Range.color=(255, 128, 128) # or '#ffffff'更改背景颜色,使用RGB代码
Range.color=None#清除背景颜色
RangeColumn=Range.column#获取改区域第一列的位置,为只读属性
#column_width为可更改属性
Range.column_width=10#设置范围列宽度
RangeColumn_Width=Range.column_width#获取范围列宽度
RangeCount=Range.count#获取范围内单元格的个数
Range1=sheet.range('A20:C32')
Current_Regin=Range.current_region#提取新的范围,不包括空行和空列
Range2=sheet.range('A20:A20')
Range2.delete(shift='left')#删除范围,向左或向上使用。 如果省略,Excel将根据范围的形状来决定。
#返回一个Range对象,该对象表示包含源范围的区域末尾的单元格。
# 相当于按Ctrl+上,Ctrl+下,Ctrl+左,或Ctrl+右,使用 'up', 'down', 'right', 'left'
RangeEnd=Range1.end(direction='up')
RangeEepand=Range1.expand(mode='table')#返回范围扩展的区域,不同于End,table为Down&Right
sheet.range('A19:B19').formula='=A21+B21'#范围公司赋值
sheet.range('B21:B23').value=2
sheet.range('A19').formula_array='=A21:A23*B21:B23'#范围公司赋值范围公式
AdressList=[]
#get_address(row_absolute=True, column_absolute=True, include_sheetname=False, external=False)
# row_absolute (bool,默认为True) -设置为True将引用的行部分作为绝对引用返回。
# column_absolute (bool,默认为True) -设置为True返回引用的列部分为绝对引用。
# include_sheetname (bool,默认为False) -设置为True以包括地址中的Sheet名称。 如果忽略外部= True。
# external (bool,默认为False) -设置为True返回带有工作簿和工作表名称的外部引用。
AdressList.append(sheet.range((1,1)).get_address())
AdressList.append(sheet.range((1,1)).get_address(False, False))
AdressList.append(sheet.range((1,1), (3,3)).get_address(True, False, True))
AdressList.append(sheet.range((1,1), (3,3)).get_address(True, False, external=True))
# 右shift (str,默认为None) -使用右或下。
#如果省略,Excel将根据范围的形状来决定。
# copy_origin (str,默认format_from_left_or_above)
#使用format_from_left_or_above或format_from_right_or_below。
Range1.insert(shift='right',copy_origin='format_from_left_or_above')
LastCell=Range1.last_cell#范围内的最后一个单元格,只读属性
Left=Range1.left#返回从A列左边缘到范围左边缘的距离,以点为单位,只读属性
Range.top#返回从第1行的上边缘到范围上边缘的距离(以点为单位),只读属性。
Range.width#返回范围宽度
Range.height#返回范围的高度
# 从指定的Range对象创建一个合并单元格。
# across(bool,默认为False) - True将指定范围的每一行中的单元格合并为单独的合并单元格。
Range1.merge(across=False)
MregeBoolean=Range1.merge_cells#如果Range包含合并单元格则返回True,否则返回False
RangeName=Range.name#设置或获取Range的名称。
note=Range.note#返回一个Note对象。及单元格注释内容
Range1.number_format= '0.00%'#设置单元格内容格式
#返回一个Range对象,该对象表示一个与指定范围偏移的Range。
RangeOffset=Range1.offset(row_offset=1,column_offset=1)
#destination (xlwings.Range) - xlwings指定范围将被复制到的范围。
#如果省略,范围将复制到剪贴板。
Range1.copy(destination=Range)#将范围复制到目标范围或剪贴板。
sheet.pictures.add(image='1.jpeg',left=0,top=0,width=100,height=100)
#将范围作为图片复制到剪贴板。
# appearance (str,默认'screen') -要么是'screen'要么是' printer '。
# format (str,默认为'picture') - 'picture'或' bitmap '。
sheet.range('A1:C8').copy_picture(appearance='screen', format='picture')
Range1.paste()#粘贴剪切板内容
# row_size (int > 0) -新范围内的行数(如果为None,则范围内的行数不变)。
# column_size (int > 0) -新范围内的列数(如果为None,则范围内的列数不变)。
RangeResize=Range.resize(row_size=2,column_size=2)#调整范围大小
RangeRow=Range1.row#返回指定范围内的第一行的编号,只读属性。
RangeRow=Range1.rows#返回一个RangeRows对象,它表示指定范围内的行。
# 获取或设置Range的高度(以点为单位)。
# 如果Range中的所有行具有相同的高度,则返回高度。
# 如果Range中的行有不同的高度,则返回None。
RangeRowHeight=Range1.row_height
Range1.select#选择范围,仅适用于打开的工作簿
Range1.shape#返回范围没的shape对象
Range1.sheet#返回范围所属的sheet
Range1.size#返回Range中元素的数量。
Range1.table#返回Range的table对象
Range1.to_png(path='123.jpg')#保存为图片,path为路径
Range1.unmerge()#接触合并
Range1.value#范围内的值
print(RangeRowHeight)
print(RangeRow)
print(RangeResize)
print(RangeOffset)
print(note)
print(RangeName)
print(MregeBoolean)
print(Left)
print(LastCell)
print(Rangehyperlink)
print(AdressList)
print(RangeEnd)
print(Current_Regin.value)
print(RangeCount)
print(Rangeadress)
print(RangeColumn)
print(RangeColumn_Width)
print(RangeEepand)
#wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
#wb.close()#关闭工作簿
#app.quit()#退出Excel
3.4 rows、columns、shapes、pictures、tables等对象集合
#可以使用Rows或者Columns定位到表格行与列
#可以使用shapes、pictures、tables定位表格中的所有shape、picture、table等
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
rng = xw.Range('A1:C4')
for r in rng.rows:
print(r.address)
for c in rng.columns:
print(c.address)
for s in sheet.shapes:
print(s.name)
for p in sheet.pictures:
print(p.name)
for t in sheet.tables:
print(t.name)
# wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
# wb.close()#关闭工作簿
# app.quit()#退出Excel
3.5 shape的常用方法和属性
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
Shape=sheet.shapes[1]
#Shape.delete()#删除图形
#与range一样的left,top,width,height
Shape.left
Shape.top
Shape.width
Shape.height
ShapeName=Shape.name#Shape的名称
ShapePrent=Shape.parent#返回Shape的父元素,也就是Sheet
Shape.text="这是一个Shape"#设置图形内位置,如果是Chart的Shape是不可用的
ShpeType=Shape.type#返回形状的类型。
print(ShpeType)
print(ShapePrent)
print(ShapeName)
wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
wb.close()#关闭工作簿
app.quit()#退出Excel
3.6 chart常用属性与方法
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
sheet.range('A1').value = [['Foo1', 'Foo2'], [1, 2]]
chart = sheet.charts.add(left=50,top=50,width=300,height=300)#添加Chart
chart.set_source_data(sheet.range('A1').expand())
chart.chart_type = 'line'#返回并设置图表的图表类型。
#以下图表类型可供选择:
# 3d_area, 3d_area_stacked, 3d_area_stacked_100,
# 3d_bar_clustered, 3d_bar_stacked, 3d_bar_stacked_100,
# 3d_column, 3d_column_clustered, 3d_column_stacked,
# 3d_column_stacked_100, 3d_line, 3d_pie, 3d_pie_exploded,
# area, area_stacked, area_stacked_100, bar_clustered, bar_of_pie,
# bar_stacked, bar_stacked_100, bubble, bubble_3d_effect,
# column_clustered, column_stacked, column_stacked_100, combination,
# cone_bar_clustered, cone_bar_stacked, cone_bar_stacked_100, cone_col,
# cone_col_clustered, cone_col_stacked, cone_col_stacked_100,
# cylinder_bar_clustered, cylinder_bar_stacked, cylinder_bar_stacked_100,
# cylinder_col, cylinder_col_clustered, cylinder_col_stacked,
# cylinder_col_stacked_100, doughnut, doughnut_exploded,
# line, line_markers, line_markers_stacked,
# line_markers_stacked_100, line_stacked,
# line_stacked_100, pie, pie_exploded,
# pie_of_pie, pyramid_bar_clustered,
# pyramid_bar_stacked, pyramid_bar_stacked_100,
# pyramid_col, pyramid_col_clustered, pyramid_col_stacked,
# pyramid_col_stacked_100, radar, radar_filled, radar_markers,
# stock_hlc, stock_ohlc, stock_vhlc, stock_vohlc,
# surface, surface_top_view, surface_top_view_wireframe,
# surface_wireframe, xy_scatter, xy_scatter_lines,
# xy_scatter_lines_no_markers, xy_scatter_smooth,
# xy_scatter_smooth_no_markers
#与Shape一样,同样拥有name、left、top、width、height、
#name、parent、delete,使用方法一样
chart.name
chart.left
chart.top
chart.width
chart.height
chart.name
chart.parent
# to_png与之前讲过的方式一样
chart.to_png('1456.jpg')
chart.delete()
wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
wb.close()#关闭工作簿
app.quit()#退出Excel
3.7 picture的常用方法和属性
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
# image (str,类似路径的对象或Matplotlib .figure. figure) -一个文件路径或Matplotlib图形对象。
# left(float,默认为None) -点的左侧位置,默认为0。 如果使用top/left,则不能为anchor提供值。
# top (float,默认无)-顶点位置,默认为0。 如果使用top/left,则不能为anchor提供值。
# width(float,默认None) -以点为单位的宽度。 默认为原始宽度。
# height (float,默认无)-高度,以点为单位。 默认为初始高度。
# name (str,默认None) - Excel图片名称。 如果没有提供,默认为Excel标准名称,例如“图1”。
Picture=sheet.pictures.add(image='2.jpeg',left=0,
top=0,width=100,height=100,name='NewPicture')
#同样拥有name、left、top、width、height、
#name、parent、delete,使用方法一样
Picture.name
Picture.left
Picture.top
Picture.width
Picture.height
Picture.name
Picture.parent
wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
wb.close()#关闭工作簿
app.quit()#退出Excel
3.8 table常用方法和属性
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
sheet['A1'].value = [['a', 'b'], [1, 2]]
#添加table,source为数据,name为table名称
table = sheet.tables.add(source=sheet['A1'].expand(), name='MyTable')
TableBodyRange=table.data_body_range#返回一个范围对象,该对象表示不包括标题行在内的值范围
table_name=table.name#返回或设置指定Table对象的名称
Header_row_range=table.header_row_range#返回表示标题行范围的xlwings范围对象
tablerange=table.range#返回表的xlwings范围对象。
table.resize(sheet.range('A1:C3'))#通过提供一个xlwings范围对象来调整Table的大小
table.show_autofilter=False#通过将自动过滤器设置为True或False来打开或关闭它
table.show_headers=False#显示或隐藏标题
table.show_table_style_column_stripes=True#返回或设置列条纹表样式用于
table.show_table_style_first_column=True#第一列
table.show_table_style_last_column=True#最后一列
table.show_table_style_row_stripes=True#行
table.show_totals=True#汇总行开关
tablestyle=table.table_style#获取或设置表样式。
RowRange=table.totals_row_range#返回一个表示Total行的xlwings范围对象
print(RowRange)
print(tablestyle)
print(tablerange)
print(Header_row_range)
print(table_name)
print(TableBodyRange)
# wb.save('example.xlsx')#另存为,当内容为(Path=None)为仅保存,不是另存
# wb.close()#关闭工作簿
# app.quit()#退出Excel
3.9 font的常用方法和属性
import xlwings as xw
app=xw.App(visible=True,add_book=False)#新建Excel对象
wb=app.books.open(r'example.xlsx')#打开新工作簿
sheet=wb.sheets[0]#指定为开启工作簿的第一个sheet
Fon=sheet.range('A20').font
Fon.bold=True#字体加粗
Fon.color = (255, 0, 0) # or '#ff0000' 设置字体颜色
Fon.italic=True#斜体
Fon.name = '黑体'#设置字体
Fon.size=50#设置字体大小
characters=sheet.range('A20').characters[0:5]#提取部分字符段
characters.font.color = (255, 128, 0)#部分字符段设置
在日常工作中,或多或少会使用到excel工具。有时繁琐重复的excel会让人感到很无聊和乏味,并且浪费大量的时间。如果你也是这样,这个时间救星就到了,学好Python的xlwings包,摸鱼无烦恼。文章为个人笔记,部分代码需要根据实际情况进行调整。............
可以用来处理Excel文件的python模块很多,如XlsxWriter、xlrd、 xlwt、xlutils、openpyxl和xlwings等。下面是一张功能对比表:
可以看出,xlwings模块的功能最齐全。可以读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件;xlwings模块还能与Excel VBA结合使用,实现更加强大的数据输入和分析功能例:创建一个新的工作簿
运行之后微软系统自带的Excel就会弹出来
代码解析:
我们重点看一下第二行和第三行代码,
目录安装**前置知识**详细使用步骤**一、打开Excel程序****二、保存、退出、关闭****三、新建 Excel 文件****四、读取内容****五、写入数据**1.写入当前文件2.如果要写入新的文件,可以新建一个文件然后再写入**六、获取数据范围****七、输出并修改行高列宽****八、获取及设置公式****九、 获取、设置及清除颜色格式**
xlwings 是一个非标准库,需要在命令行中安装,在终端(Mac)/命令行(Win)使用pip安装即可,一般不会出现什么问题。
pip install
目录xlwt模块简单使用xlwt为内容设置style合并单元格设置单元格的对齐方式设置单元格调边框设置单元格边框设置单元格背景色设置字体颜色xlrd模块xlrd模块介绍xlrd模块基本操作xlrd模块读取单元格内容为日期/时间xlrd模块对合并单元格执行操作获取合并的单元格读取合并单元格的数据xlwings模块xlwings实际操作举例xlwt模块
简单使用xlwt
import xlwt ...
本篇博客继续为大家带来
Python 操作 Excel 文件的相关知识点,核心涉及的
模块为
xlwings 。
首先依旧是
模块安装环节
pip install
xlwings
新建工作簿
import
xlwings as xw
app = xw.App(visible=True,add_book=False)
# 新建工作簿
wb = app.books.add()
print(wb)
默认打开电脑上的 office
excel 软件。
打开已有工作簿
import
xlwings as xw
xlwings是一个获得BSD许可的Python库,可以很容易地从Excel调用Python,反之亦然。 它适用于Windows和Mac上的Microsoft Excel。
在官方文档里找不到具体怎么生成图表,和一些参数设置。
这里自己整理了一下。
import xlwings as xw
app = xw.App()
wb = app.books.active
sht = wb.sheets.active
chart = sht.charts.add(100, 10) # 100, 10 为图表放置的位置坐标。以像素为单位。
chart.set_source_data(sht.range
因产品的同学试着用
python统计
Excel表格,但百度的程序又一直有各种问题, 所以叫我帮用
python实现一个统计
Excel表格程序;我之前也没有写过
python操作Excel表格的程序,快速搜索实现了一下,还是发现一些问题,所以分享一下。
我们使用TAPD管理项目,这里从TAPD导出的原
Excel报表,统计后再生成的新
Excel表。
原
Excel报表是任务(标题)的信息列表,需要按需求分类分别统计各处理人的预估工时,如下(图1原始
Excel表格有200多行、图2统计生成的新
Excel表格):
原始Exce
1.资源简介:
Python操作Excel,常用
Xlwings和Openpyx类,由于其知识琐碎,使用起来不太方便,因此自己把常用用法重新封装一个
操作类。
2.应用场景:使用
Python操作Excel,读、写、改、删情景,能大大提升工作效率。
3.适用人群:想学习
Python操作Excel的人员。
通过xlwings操作Excel的过程就是逐层创建对象。使用xlwings读写单元格的基本步骤为:
1、使用xlwings.App() 创建App对象,代表Excel进程;
2、使用app对象books属性的open或add方法,打开或新建Excel工作簿,并得到代表该工作簿的Book对象;
3、使用Book对象Sheets属性,得到代表某工作表的Sheet对象;
4、使用Sheet对象的range方法,得到代表指定单元格区域的Range对象;
5、使用Range对象的value属性............
使用
Python加载最新的
Excel读取类库
xlwings可以说是
Excel数据处理的利器。
Xlwings是开源免费的,能够非常方便的读写
Excel文件中的数据,并且能够修改单元格的格式。
要使用
xlwings,需要确定
xlwings是否已安装。
可以cmd中使用下面命令
pip install
xlwings
【详见
Python第三方
模块(库、包)安装、卸载与查看 https://blog.csdn.net/cnds123/article...