python-记录数模excel处理中遇到的问题

因为尚且不知道如何直接对打开的excel文件进行操作,于是决定另外写一个文件出来。
就是简单的把矩阵对称的复制一下。
很简单。但是花了半个小时多,所以特此记录一下。

#-*- coding=utf-8 -*-
import xlrd
import xlwt


data=xlrd.open_workbook("C:/Users/hasee/Desktop/visualableWea.vscode/Bdata.xls")
workbook = xlwt.Workbook(encoding = 'utf-8')
table = data.sheets()[0]  #获得表格
nrows = table.nrows #行数
ncols = table.ncols #列数
worksheet = workbook.add_sheet("data",cell_overwrite_ok=False)
for i in range(2,52):
    for j in range(2,i):
        worksheet.write(i,j, label = table.cell(j,i).value)

for i in range(0,nrows):
    for j in range(0,ncols):
        if table.cell(i,j).value!='':
            worksheet.write(i,j, label = table.cell(i,j).value)
a
workbook.save("C:/Users/hasee/Desktop/visualableWea.vscode/excel_out.xls")


data=xlrd.open_workbook("C:/Users/hasee/Desktop/visualableWea.vscode/excel_out.xls")
workbook = xlwt.Workbook(encoding = 'utf-8')
table = data.sheets()[0]  #获得表格
nrows = table.nrows #行数
ncols = table.ncols #列数
worksheet = workbook.add_sheet("data",cell_overwrite_ok=True)
for i in range(2,52):
    for j in range(2,i):
        worksheet.write(i,j, label = table.cell(j,i).value)

for i in range(0,52):
    for j in range(0,52):
        if table.cell(i,j).value!='':
            worksheet.write(i,j, label = table.cell(i,j).value)

for i in range(2,52):
    for j in range(2,i):
        if table.cell(j,i).value>1 :
            worksheet.write(i,j, 0)
            worksheet.write(j,i, 0)

for i in range(2,52):
    sum=0
    for j in range(2,52):
        if(table.cell(i,j).value==1):
            sum=sum+table.cell(i,j).value
    worksheet.write(i,52,sum)
workbook.save("C:/Users/hasee/Desktop/visualableWea.vscode/excel_out2.xls")

首先因为复制粘贴比较省时间,所以代码量看起来比较多,而且保存了2个文件,脑子就不用思考了。hhh

point1

首先记得要Save。

point2

overwrite默认是不被允许的。以及True必须写True,大小写敏感。
这里用了个简单的if做判断,免得需要的数据被重写。

point3

默认路径是当前工作路径。

point4

range是左闭右开的 切记!!!!!!!!!!!!!!!!

猜你喜欢

转载自blog.csdn.net/zhubozhen/article/details/80344767
今日推荐