Python——读取和写入excel表格数据的一种方法

Python——读取和写入excel表格数据的一种方法

  • 一、配置读取和写入环境
  • 二、读取excel表格
  • 三、写入excel表格
  • 四、一个完整工程的代码
  • 参考文章

一、配置读取和写入环境

说明:读取和写入我们采用的是xlrd库

  • xlrd 2.0.1 及以上版本的库 只支持.xls文件格式
  • xlrd 1.2.0 版本的库 支持.xls和.xlsx文件格式

所以,我们最好将我们的xlrd版本改成1.2.0版本

  1. 打开终端,输入以下命令即可查看当前设备上 xlrd 版本:
pip show xlrd
  1. 如果发现xlrd非1.2.0版本,则可以采取下面命令进入xlrd版本更换:
pip uninstall xlrd
pip install xlrd==1.2.0 #下载1.2.0版本

二、读取excel表格

import xlrd # 导入库
data = xlrd.open_workbook('F:\\BaiduNetdiskWorkspace\\Code\\Python_Vscode\\20211214\\sample(1).xlsx') # 读取文件
table =data.sheets()[0] # 将第一个sheet赋给table
nrows = table.nrows # 总行数
ncols = table.ncols # 总列数
table.row_values(i)[j] # 获取excel表格中(第i+1,第j+1)格子里的内容

三、写入excel表格

# 导入库
import xlwt
# 将数据写入excel表格
workbook = xlwt.Workbook() 
sheet = workbook.add_sheet("Sheet") 
al = xlwt.Alignment()
al.horz = 0x02 # 设置水平居中

# 创建样式对象1,初始化样式
style_1 = xlwt.XFStyle()  
style_1.num_format_str = 'M/D/YY' # 设置日期格式
style_1.alignment = al # 设置水平居中

# 创建样式对象2,初始化样式
style_2 = xlwt.XFStyle() 
style_2.alignment = al # 设置水平居中

# 写入第一、第二列
for i in range(len(target_data)): 
    for j in range(0,2): 
     sheet.write(i, j, target_data[i][j],style_1)

# 写入其余列
for i in range(len(target_data)): 
    for j in range(2,len(target_data[i])): 
     sheet.write(i, j, target_data[i][j],style_2)

# 设置每列宽度
sheet.col(0).width=256*15 # 第1列
sheet.col(1).width=256*15 # 第2列
sheet.col(2).width=256*12 # 第3列
sheet.col(3).width=256*20 # 第4列
sheet.col(4).width=256*15 # 第5列
sheet.col(5).width=256*15 # 第6列
sheet.col(6).width=256*15 # 第7列

workbook.save("target_data.xls") # 保存到target_data.xls

四、一个完整工程的代码

# 日期:2021/12/14 
# 姓名:csj
# 如存在代码问题或有更好的建议,请联系我,邮箱:2946321668@qq.com

# 导入库
import xlrd
import xlwt

data = xlrd.open_workbook('F:\\BaiduNetdiskWorkspace\\Code\\Python_Vscode\\20211214\\sample(1).xlsx') # 读取文件
table =data.sheets()[0] # 将第一个sheet赋给table
nrows = table.nrows # 总行数
ncols = table.ncols # 总列数
print("all_nrows:" + str(table.nrows)) # 总行数
print("all_cols:" + str(table.ncols)) # 总列数

target_data = [] # 定义目标数据空列表
target_data.append(["DateAnnounced","DateTerminated","DealNumber","NumberofParticipants","Compang-Pair-1","Compang-Pair-2","Group Number"]) # 写目标数据列标题

i = 1 # 第二行有值元素的位置:下标为1,第二列
while i < nrows:
    j = 4 # part1的位置:下标4,第5while j < ncols:
        # 提取某行part中的有值数据个数
        new_row_data = [] 
        for m in range(4,20):
            if table.row_values(i)[m] != '':
                new_row_data.append(table.row_values(i)[m])
        new_row_data_len = len(new_row_data)
        # print(new_row_data) # 测试new_row_data是否正常
        # 利用数据结构基本算法,使符合要求的数据按顺序俩俩组合
        new_cell = []
        start = 0
        for num1 in range(start,new_row_data_len):
            for num2 in range(num1 + 1,new_row_data_len):
                new_cell.append([new_row_data[num1],new_row_data[num2]]) # 以二维列表存入
        j += 1
    # print(new_cell) # 测试new_cell是否正常
    # 在target_data最后写入符合要求的行数据
    for k in range(0,len(new_cell)):
        target_data.append([table.row_values(i)[0],table.row_values(i)[1],table.row_values(i)[2],table.row_values(i)[3],new_cell[k][0],new_cell[k][1],table.row_values(i)[2]])
    i += 1

# 将数据写入excel表格
workbook = xlwt.Workbook() 
sheet = workbook.add_sheet("Sheet") 
al = xlwt.Alignment()
al.horz = 0x02 # 设置水平居中

# 创建样式对象1,初始化样式
style_1 = xlwt.XFStyle()  
style_1.num_format_str = 'M/D/YY' # 设置日期格式
style_1.alignment = al # 设置水平居中

# 创建样式对象2,初始化样式
style_2 = xlwt.XFStyle() 
style_2.alignment = al # 设置水平居中

# 写入第一、第二列
for i in range(len(target_data)): 
    for j in range(0,2): 
     sheet.write(i, j, target_data[i][j],style_1)

# 写入其余列
for i in range(len(target_data)): 
    for j in range(2,len(target_data[i])): 
     sheet.write(i, j, target_data[i][j],style_2)

# 设置每列宽度
sheet.col(0).width=256*15 # 第1列
sheet.col(1).width=256*15 # 第2列
sheet.col(2).width=256*12 # 第3列
sheet.col(3).width=256*20 # 第4列
sheet.col(4).width=256*15 # 第5列
sheet.col(5).width=256*15 # 第6列
sheet.col(6).width=256*15 # 第7列

workbook.save("target_data.xls") # 保存到target_data.xls

# 输出目标数据列表
print(target_data)
print("perfect!")

参考文章

  1. python——使用xlrd库读取excel表格数据
  2. Python读取和写入Excel文件数据
  3. python xlwt 设置单元格样式
  4. python之xlwt模块列宽width、行高Heights详解
  5. Python使用xlwt在excel写入时间格式

你可能感兴趣的:(编程语言,python,excel,数据处理)