Board logo

标题: Windows下Python3管理Excel表 [打印本页]

作者: admin    时间: 2019-10-4 09:24     标题: Windows下Python3管理Excel表

Win7连接公网安装第三方库(xlwt): pip3 install xlwt==1.3.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com 图片1.png 由此获得此软件包的下载地址: Downloading http://mirrors.aliyun.com/pypi/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl (99kB) Win7连接公网安装第三方库(xlrd): pip3 install xlrd==1.2.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com 图片2.png 由此获得此软件包的下载地址: Downloading http://mirrors.aliyun.com/pypi/packages/b0/16/63576a1a001752e34bf8ea62e367997530dc553b689356b9879339cf45a4/xlrd-1.2.0-py2.py3-none-any.whl (103kB) Win7连接公网安装第三方库(xlutils): pip3 install xlutils==2.0.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host=mirrors.aliyun.com 图片3.png 由此获得此软件包的下载地址: Downloading http://mirrors.aliyun.com/pypi/packages/c7/55/e22ac73dbb316cabb5db28bef6c87044a95914f713a6e81b593f8a0d2f79/xlutils-2.0.0-py2.py3-none-any.whl (55kB) 笺注:这三个软件包适用于Windows和Linux系统,不区分32/64位;操作系统无需安装Excel软件。 列出当前环境所有已经安装的第三方库的名称和其版本号: C:\Users\jacky>pip3 freeze xlrd==1.2.0 xlutils==2.0.0 xlwt==1.3.0 C:\Users\jacky> ###### 例子一: 创建一个Excel表的脚本: 脚本内容:(C:\Users\jacky\Desktop\xx.py) #coding=utf-8 import xlwt wbk = xlwt.Workbook() sheet = wbk.add_sheet('页1') #添加一个工作表,名称为“页1” wbk.save('d:\\share\\跑批登记表_test1.xls') #保存Excel表;Excel表名称是自定义的;会把Excel表保存到文件夹D:\share里面 运行脚本的效果: C:\Users\jacky>cd Desktop C:\Users\jacky\Desktop>python xx.py C:\Users\jacky\Desktop> 新生成的Excel表: 图片1.png 图片2.png 笺注:假如Excel表名称重复,会被直接覆盖,没有提示的。 ###### 例子二: 往指定工作表的指定单元格插入数据的脚本: 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:\\share\\跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) ws = workbooknew.get_sheet('页1') #定位到指定名称的工作表 Key_1 = 'Python' ws.write(0, 0, Key_1) #往第1行第1列写入内容;从0开始计算的 Key_2 = 1000 ws.write(1, 2, Key_2) #往第2行第3列写入内容 Key_3 = '李大杰' ws.write(3, 0, Key_3) #往第4行第1列写入内容 Key_4 = 88.5 ws.write(4, 1, Key_4) #往第5行第2列写入内容 workbooknew.save(file_1) print('Insert successful.') 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Insert successful. C:\Users\jacky\Desktop> 图片3.png ###### 例子三: 更改指定工作表的指定单元格的内容的脚本: 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) ws = workbooknew.get_sheet('页1') #定位到指定名称的工作表 Key_1 = 'Zhuohua' ws.write(0, 0, Key_1) #往第1行第1列更改内容;从0开始计算的 Key_2 = 2000.588 ws.write(1, 2, Key_2) #往第2行第3列更改内容 Key_3 = '小明' ws.write(3, 0, Key_3) #往第4行第1列更改内容 ws.write(4, 1, ) #往第5行第2列更改内容;这等于清空这个单元格的内容 workbooknew.save(file_1) print('Update successful.') 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Update successful. C:\Users\jacky\Desktop> 图片4.png ###### 例子四: 往指定工作表中追加一条记录的脚本: 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 sheet_1 = "页1" #指定工作表 def func_get_nrows(): Data_1 = xlrd.open_workbook(file_1) Table_1 = Data_1.sheet_by_name(sheet_1) #定位到指定名称的工作表 Nrows_1 = Table_1.nrows #获取指定名称的工作表的总行数 func_zhuijia(file_1,Nrows_1,sheet_1) def func_zhuijia(file_1,Nrows_1,sheet_1): workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) ws = workbooknew.get_sheet(sheet_1) ws.write(Nrows_1, 0, 'Welcome') # 追加一行的第1列的内容 ws.write(Nrows_1, 1, 'to') # 追加一行的第2列的内容 ws.write(Nrows_1, 2, '小红') # 追加一行的第3列的内容 ws.write(Nrows_1, 3, 168.88) # 追加一行的第4列的内容 workbooknew.save(file_1) print("Insert successful.") if __name__ == '__main__': func_get_nrows() 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Insert successful. C:\Users\jacky\Desktop> 图片5.png ###### 例子五: 往Excel表中追加工作表的脚本: 脚本内容: #coding=utf-8 from xlrd import open_workbook from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) workbooknew.add_sheet('财务报告') # 追加名为“财务报告”的工作表 workbooknew.add_sheet('2019-9') # 追加名为“2019-9”的工作表 Key_1 = '2019-10' workbooknew.add_sheet(Key_1) # 追加名为“2019-10”的工作表 workbooknew.save(file_1) print('追加工作表成功。') 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py 追加工作表成功。 C:\Users\jacky\Desktop> 图片6.png ###### 例子六: 往指定工作表的指定单元格插入数据的脚本: 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) sheet_1 = '财务报告' ws = workbooknew.get_sheet(sheet_1) #定位到指定名称的工作表 Key_1 = 'Python' ws.write(0, 0, Key_1) #往第1行第1列写入内容;从0开始计算的 Key_2 = 3000 ws.write(0, 1, Key_2) #往第1行第2列写入内容 ### sheet_2 = 2 ws = workbooknew.get_sheet(sheet_2) #定位到第3页的工作表;从0开始计算的 Key_3 = '李大杰' ws.write(1, 0, Key_3) #往第2行第1列写入内容 Key_4 = 88.5 ws.write(1, 1, Key_4) #往第2行第2列写入内容 workbooknew.save(file_1) print('Insert successful.') 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Insert successful. C:\Users\jacky\Desktop> 图片7.png 图片8.png ###### 例子七: 往指定工作表的指定单元格插入数据的脚本:(合并单元格) 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) sheet_1 = '2019-10' ws = workbooknew.get_sheet(sheet_1) #定位到指定名称的工作表 Key_1 = '姓名' ws.write(0, 0, Key_1) #往第1行第1列写入内容;从0开始计算的 Key_2 = '年龄' ws.write(0, 1, Key_2) #往第1行第2列写入内容 Key_3 = '语文成绩' ws.write_merge(0, 0, 2, 3, Key_3) #合并单元格: #起始单元格的行号、截止单元格的行号 #起始单元格的列号、截止单元格的列号 #单元格合并后写入的内容 ### Key_1 = '范小冰' ws.write(1, 0, Key_1) #往第2行第1列写入内容 Key_2 = 18 ws.write(1, 1, Key_2) #往第2行第2列写入内容 Key_3 = 87 ws.write_merge(1, 1, 2, 3, Key_3) #单元格合并后写入内容 workbooknew.save(file_1) print('Insert successful.') 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Insert successful. C:\Users\jacky\Desktop> 图片9.png ###### 例子八: 往指定工作表中追加一条记录的脚本:(合并单元格) 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 sheet_1 = '2019-10' #指定工作表 def func_get_nrows(): Data_1 = xlrd.open_workbook(file_1) Table_1 = Data_1.sheet_by_name(sheet_1) #定位到指定名称的工作表 Nrows_1 = Table_1.nrows #获取指定名称的工作表的总行数 func_zhuijia(file_1,Nrows_1,sheet_1) def func_zhuijia(file_1,Nrows_1,sheet_1): workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) ws = workbooknew.get_sheet(sheet_1) ws.write(Nrows_1, 0, '张大荣') # 追加一行的第1列的内容 ws.write(Nrows_1, 1, 20) # 追加一行的第2列的内容 ws.write_merge(Nrows_1, Nrows_1, 2, 3, 99.5) #单元格合并后写入内容 workbooknew.save(file_1) print("Insert successful.") if __name__ == '__main__': func_get_nrows() 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Insert successful. C:\Users\jacky\Desktop> 图片10.png ###### 例子九: 更改指定工作表的指定单元格的内容的脚本:(合并的单元格) 脚本内容: #coding=utf-8 import xlrd from xlutils.copy import copy file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1,formatting_info=True) #保持原有的样式 workbooknew = copy(workbook) sheet_1 = '2019-10' #指定工作表 ws = workbooknew.get_sheet(sheet_1) Key_1 = 87.5 ws.write(1, 2, Key_1) #往第2行第3列更改内容;第3列、第4列虽然合并了,但只显示第3列的内容 workbooknew.save(file_1) print('Update successful.') 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py Update successful. C:\Users\jacky\Desktop> 图片11.png ###### 例子十: 统计工作表的数量和名称的脚本: 脚本内容: #coding=utf-8 import xlrd file_1 = 'd:\\share\\跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1) Count_1 = len(workbook.sheets()) print(f"{file_1}的工作表的数量为{Count_1}个:") for sheet in workbook.sheets(): #逐一输出所有工作表的名称 print(sheet.name) 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py d:\share\跑批登记表_test1.xls的工作表的数量为4个: 页1 财务报告 2019-9 2019-10 C:\Users\jacky\Desktop> ###### 例子十一: 统计指定工作表的总行数的脚本: 脚本内容: #coding=utf-8 import xlrd file_1 = 'd:\\share\\跑批登记表_test1.xls' #指定Excel表 Data_1 = xlrd.open_workbook(file_1) sheet_1 = '页1' Table_1 = Data_1.sheet_by_name(sheet_1) #定位到指定名称的工作表 Nrows_1 = Table_1.nrows #获取指定名称的工作表的总行数 print(Nrows_1) print(type(Nrows_1)) print("-" * 10) Table_2 = Data_1.sheet_by_name("2019-9") #定位到指定名称的工作表 Nrows_2 = Table_2.nrows #获取指定名称的工作表的总行数 print(Nrows_2) print(type(Nrows_2)) 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py 5 ---------- 2 C:\Users\jacky\Desktop> ###### 例子十二: 读取指定单元格内容的脚本: 脚本内容: #coding=utf-8 import xlrd file_1 = 'd:\\share\\跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1) My_sheet = workbook.sheet_by_name("页1") #定位到指定名称的工作表 My_rows = My_sheet.row_values(3) # 获取第4行全部内容;从0开始计算的 My_cols = My_sheet.col_values(0) # 获取第1列全部内容;从0开始计算的 print(My_rows) # 输出一整行的内容 print(type(My_rows)) print(My_cols) # 输出一整列的内容 print(type(My_cols)) print("-" * 10) Key_1 = My_rows[0] # 输出所得行的第1个元素的内容 print(Key_1) print(type(Key_1)) print("-" * 10) Key_2 = My_cols[4] # 输出所得列的第5个元素的内容 print(Key_2) print(type(Key_2)) 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py ['小明', '', '', ''] ['Zhuohua', '', '', '小明', 'Welcome'] ---------- 小明 ---------- Welcome C:\Users\jacky\Desktop> ###### 例子十三: 读取指定单元格内容的脚本: 脚本内容: #coding=utf-8 import xlrd file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1) sheet_1 = '财务报告' My_sheet = workbook.sheet_by_name(sheet_1) #定位到指定名称的工作表 My_rows = My_sheet.row_values(0) #获取第1行全部内容;从0开始计算的 print(My_rows) #输出一整行的内容 print(type(My_rows)) Key_1 = My_rows[1] #输出所得行的第2个元素的内容 print(Key_1) print(type(Key_1)) Key_1 = int(Key_1) #浮点数转换为整数 print(Key_1) print(type(Key_1)) print("-" * 10) sheet_2 = '2019-9' My_sheet = workbook.sheet_by_name(sheet_2) #定位到指定名称的工作表 My_cols = My_sheet.col_values(1) #获取第2列全部内容;从0开始计算的 print(My_cols) #输出一整列的内容 print(type(My_cols)) Key_2 = My_cols[1] #输出所得列的第2个元素的内容 print(Key_2) print(type(Key_2)) 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py ['Python', 3000.0] 3000.0 3000 ---------- ['', 88.5] 88.5 C:\Users\jacky\Desktop> ###### 例子十四: 读取指定单元格内容的脚本:(合并的单元格) 脚本内容: #coding=utf-8 import xlrd file_1 = 'd:/share/跑批登记表_test1.xls' #指定Excel表 workbook = xlrd.open_workbook(file_1) sheet_1 = '2019-10' My_sheet = workbook.sheet_by_name(sheet_1) #定位到指定名称的工作表 My_rows = My_sheet.row_values(1) #获取第2行全部内容;从0开始计算的 print(My_rows) #输出一整行的内容 print(type(My_rows)) print("-" * 10) Key_1 = My_rows[0] #输出所得行的第1个元素的内容 print(Key_1) print(type(Key_1)) Key_1 = My_rows[1] #输出所得行的第2个元素的内容 print(Key_1) print(type(Key_1)) Key_1 = My_rows[2] #输出所得行的第3个元素的内容 print(Key_1) print(type(Key_1)) 运行脚本的效果: C:\Users\jacky\Desktop>python xx.py ['范小冰', 18.0, 87.5] ---------- 范小冰 18.0 87.5 C:\Users\jacky\Desktop> ###### ###### Win7卸载第三方库(xlwt): C:\Users\jacky>pip3 uninstall xlwt -y Uninstalling xlwt-1.3.0: Successfully uninstalled xlwt-1.3.0 C:\Users\jacky> Win7卸载第三方库(xlrd): C:\Users\jacky>pip3 uninstall xlrd -y Uninstalling xlrd-1.2.0: Successfully uninstalled xlrd-1.2.0 C:\Users\jacky> Win7卸载第三方库(xlutils): C:\Users\jacky>pip3 uninstall xlutils -y Uninstalling xlutils-2.0.0: Successfully uninstalled xlutils-2.0.0 C:\Users\jacky> 相关文章: Windows下Python3管理Excel表+绘图库Matplotlib Linux下Python3管理Excel表

图片附件: 图片1.png (2022-7-26 04:29, 99.71 KB) / 下载次数 52
http://blog.zhuohua.store/attachment.php?aid=20124&k=4b662513539eaa4bde104df5b343ca26&t=1714429756&sid=bDhnLX



图片附件: 图片2.png (2022-7-26 04:30, 104.03 KB) / 下载次数 56
http://blog.zhuohua.store/attachment.php?aid=20125&k=d8a948bb533a4dc4c897e36efb01f33a&t=1714429756&sid=bDhnLX



图片附件: 图片3.png (2022-7-26 04:30, 125.01 KB) / 下载次数 59
http://blog.zhuohua.store/attachment.php?aid=20126&k=7accc68507aee3c42ae00e7f6fc8769e&t=1714429756&sid=bDhnLX



图片附件: 图片1.png (2022-7-28 14:27, 37.91 KB) / 下载次数 51
http://blog.zhuohua.store/attachment.php?aid=20135&k=76db4011bc16b0a1bf65af9205622fdb&t=1714429756&sid=bDhnLX



图片附件: 图片2.png (2022-7-28 14:27, 13.28 KB) / 下载次数 53
http://blog.zhuohua.store/attachment.php?aid=20136&k=5edee4b3b8d0963b3430e9c7d8559da8&t=1714429756&sid=bDhnLX



图片附件: 图片3.png (2022-7-28 14:28, 16.61 KB) / 下载次数 44
http://blog.zhuohua.store/attachment.php?aid=20137&k=91264d4941de4c0b0a5ad7b3f8539d6b&t=1714429756&sid=bDhnLX



图片附件: 图片4.png (2022-7-28 14:29, 16.09 KB) / 下载次数 46
http://blog.zhuohua.store/attachment.php?aid=20138&k=02e298a797be6479847bee95a7264d9e&t=1714429756&sid=bDhnLX



图片附件: 图片5.png (2022-7-28 14:30, 17.4 KB) / 下载次数 53
http://blog.zhuohua.store/attachment.php?aid=20139&k=3d7bc2950f23cbcfb443e8e6bce58f16&t=1714429756&sid=bDhnLX



图片附件: 图片6.png (2022-7-28 14:31, 20.6 KB) / 下载次数 61
http://blog.zhuohua.store/attachment.php?aid=20140&k=66b3295d0b8c5e189efda97983f51fa8&t=1714429756&sid=bDhnLX



图片附件: 图片7.png (2022-7-28 14:32, 16.96 KB) / 下载次数 53
http://blog.zhuohua.store/attachment.php?aid=20141&k=beb56120de0c3c8b591e48a02fe2257e&t=1714429756&sid=bDhnLX



图片附件: 图片8.png (2022-7-28 14:33, 17.19 KB) / 下载次数 57
http://blog.zhuohua.store/attachment.php?aid=20142&k=e36f814217a305897099b457c4f69a24&t=1714429756&sid=bDhnLX



图片附件: 图片9.png (2022-7-28 14:33, 20.78 KB) / 下载次数 57
http://blog.zhuohua.store/attachment.php?aid=20143&k=50e2ffd37d9ea3305a8381fa95b85a29&t=1714429756&sid=bDhnLX



图片附件: 图片10.png (2022-7-28 14:34, 22.86 KB) / 下载次数 56
http://blog.zhuohua.store/attachment.php?aid=20144&k=134fa75823994b1e34c94362f436271d&t=1714429756&sid=bDhnLX



图片附件: 图片11.png (2022-7-28 14:35, 22.67 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20145&k=ab1dac79fd77caffd1ef0a0e107652c0&t=1714429756&sid=bDhnLX






欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2