返回列表 发帖

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
2022-7-26 04:29

由此获得此软件包的下载地址:
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
2022-7-26 04:30

由此获得此软件包的下载地址:
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
2022-7-26 04:30

由此获得此软件包的下载地址:
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
2022-7-28 14:27


图片2.png
2022-7-28 14:27

笺注:假如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
2022-7-28 14:28






######

例子三:
更改指定工作表的指定单元格的内容的脚本:

脚本内容:
#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
2022-7-28 14:29






######

例子四:
往指定工作表中追加一条记录的脚本:

脚本内容:
#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
2022-7-28 14:30






######

例子五:
往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
2022-7-28 14:31






######

例子六:
往指定工作表的指定单元格插入数据的脚本:

脚本内容:
#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
2022-7-28 14:32


图片8.png
2022-7-28 14:33






######

例子七:
往指定工作表的指定单元格插入数据的脚本:(合并单元格)

脚本内容:
#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
2022-7-28 14:33






######

例子八:
往指定工作表中追加一条记录的脚本:(合并单元格)

脚本内容:
#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
2022-7-28 14:34






######

例子九:
更改指定工作表的指定单元格的内容的脚本:(合并的单元格)

脚本内容:
#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
2022-7-28 14:35






######

例子十:
统计工作表的数量和名称的脚本:

脚本内容:
#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
<class 'int'>
----------
2
<class 'int'>

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
['小明', '', '', '']
<class 'list'>
['Zhuohua', '', '', '小明', 'Welcome']
<class 'list'>
----------
小明
<class 'str'>
----------
Welcome
<class 'str'>

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]
<class 'list'>
3000.0
<class 'float'>
3000
<class 'int'>

----------
['', 88.5]
<class 'list'>
88.5
<class 'float'>

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]
<class 'list'>
----------
范小冰
<class 'str'>
18.0
<class 'float'>
87.5
<class 'float'>


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表

返回列表