安装 python3
安装 pip
打开控制台 查看pip版本
pip --version
如果pip未知命令,进入python\Scripts 执行
easy_install.exe pip
再次查看pip版本
更新命令
python -m pip install -U pip
安装库 xlrd,xlwt,xlutils
pip install xlrd
pip install xlwt
pip install xlutils
相关类及接口
类 xlwt.Workbook.Workbook( encoding ='ascii', style_compression = 0 )
使用xlwt创建工作簿(Excel文件)时,通常从实例化此类的对象开始。
.
接口add_sheet(sheetname,cell_overwrite_ok = False )
工作簿中创建工作表。
参数sheetname:用于此工作表的名称,因为它将显示在Excel应用程序底部的选项卡中。
参数cell_overwrite_ok:如果为True,则如果多次写入,则添加的工作表中的单元格不会引发异常。
.
接口save( filename_or_stream )
此方法用于将工作簿保存为本地Excel格式的文件。
参数filename_or_stream:这可以是包含文件名的字符串,在这种情况下,将使用提供的名称将excel文件保存到磁盘。它也可以是具有写入方法(例如)的流对象StringIO,在这种情况下,excel文件的数据将写入流中。
类 xlwt.Worksheet.Worksheet( sheetname,parent_book,cell_overwrite_ok = False )
工作簿中工作表内容的类。注意该类的实例是
Workbook
调用add_sheet()
返回的。
.
接口write( r, c, label ='', style = <xlwt.Style.XFStyle对象> )
此方法用于将单元格写入Worksheet。
参数r:工作表中应将单元格写入的行的零相对编号。
参数c:工作表中应将单元格写入的列的零相对编号。
参数label:要写入的数据值。
参数cell_overwrite_ok:单元格样式,是一个 XFStyle对象。XFStyle最好使用该easyxf()功能设置对象 。
.
接口xlwt.Style.easyxf(strg_to_parse ='', num_format_str = None, field_sep =',', line_sep =';', intro_sep =':', esc_char ='\\', debug = False )
此函数用于创建和配置 XFStyle对象,以便与(例如) Worksheet.write()方法一起使用。
类 xlrd.book.Book
工作簿。注意不应该自己实例化此类,而是调用
open_workbook()
时返回的对象。
.
接口xlrd.open_workbook( filename = None, logfile = <_ io.TextIOWrapper name ='<stdout>'mode ='w'encoding ='UTF-8'>, verbosity = 0, use_mmap = 1, file_contents = None, encoding_override = None, formatting_info = False, on_demand = False, ragged_rows = False )
打开电子表格文件以进行数据提取。
.
接口sheets()
工作簿中所有表的清单,所有尚未加载的表都将被加载。
.
接口sheet_by_index( sheetx )
参数sheetx:工作表索引
返回值: Sheet
.
接口sheet_by_name( sheet_name )
参数sheet_name:工作表的名称。
返回值:Sheet
.
接口sheet_names()
返回值:工作簿文件中所有表的名称列表。
.
接口sheet_loaded(sheet_name_or_index )
参数sheet_name_or_index:查询的工作表名称或索引。
返回值:True如果已加载工作表,则为False否。
.
接口unload_sheet( sheet_name_or_index )
参数sheet_name_or_index:要卸载的图纸的名称或索引。
类 xlrd.sheet.Sheet(book, position, name, number)
包含一个工作表的数据。注意不应该自己实例化此类,而是调用
sheet_by_name()
一类时返回的对象。
.
接口col( colx )
返回给定列中对象的序列。
.
接口cell( rowx, colx )
给定行和列中的对象
.
接口cell_value( rowx, colx )
给定行和列中单元格的值。
.
接口cell_type( rowx, colx )
给定行和列中单元格的类型。
.
接口cell_xf_index( rowx, colx )
给定行和列中单元格的XF索引。
例子
pothon操作excel 有三个模块 Workbook(文件)Sheet(表)cell(单元格)
1.创建
import xlwt
import xlrd
import xlutils
from xlutils import copy
fileName = 'test.xls'
# 创建excel文件
wb = xlwt.Workbook()
# 增加一张表
ws = wb.add_sheet('A Test Sheet')
# 增加单元格数据
ws.write(0, 0, 1)
ws.write(0, 1, 1)
ws.write(0, 2, xlwt.Formula("A1+B1"))
# 保存文件
wb.save(fileName)
2.读取
# 打开一个文件
rb = xlrd.open_workbook(fileName)
# 选择一张表(根据索引/表名)
# s = rb.sheet_by_index(0)
s = rb.sheet_by_name('A Test Sheet')
# 表一共的行数和列数
print(s.nrows)
print(s.ncols)
# 一个表格的数据
print(s.cell(0,0).value)
# 正行/列的数据
print(s.row_values(0))
print(s.col_values(0))
3.修改
# 先用xlrd打开一个excel
rb = xlrd.open_workbook(fileName)
# 然后用xlutils里面的copy功能,复制一个excel
nrb = copy.copy(rb)
# 获取sheet页
s = nrb.get_sheet(0)
# 修改
s.write(1,1,'张三')
s.write(1,2,'小军')
# 保存
nrb.save(fileName)
补充
使用以上的库,文件只能保存为 .xls文件,如果要保存为.xlsx文件,可以对文件后缀重命名,或者也可以使用库 openpyxl,安装 openpyxl 命令
pip install openpyxl
参考文档
https://xlrd.readthedocs.io/en/latest/api.html
https://xlwt.readthedocs.io/en/latest/api.html
https://xlutils.readthedocs.io/en/latest/api.html
http://www.python-excel.org/