python 对excel进行读写操作
import xlrd # 引入库
import xlwt
def contrast():
wb = xlrd.open_workbook('D:/desk/dui.xls') # 打开文件并返回一个工作蒲对象
sheet_num = wb.nsheets # 获取excel里面的sheet的数量
print(sheet_num)
sheet_names = wb.sheet_names() # 获取到Excel里面所有的sheet的名称列表,即使没有sheet也能用。
print(sheet_names)
sheet = wb.sheet_by_index(0) # 通过索引的方式获取到某一个sheet,现在是获取的第一个sheet页,也可以通过sheet的名称进行获取,sheet_by_name('sheet名称')
rows = sheet.nrows # 获取sheet页的行数,一共有几行
columns = sheet.ncols # 获取sheet页的列数,一共有几列
print(rows,columns)
# 获取第一行的数据
row_data = sheet.row_values(0) # 返回给定的行数的单元格数据进行切片
print(row_data)
# 获取第二列的数据
col_data = sheet.col_values(1)
print(col_data)
# 获取单元格的数据
one_data = sheet.cell(2, 1) # 同样是通过索引的方式,cell(0,1)获取到的是第一行第二列的单元格数据
cell_value = one_data.value # 获取单元格的值
cell_type = one_data.ctype # 获取单元格的类型,在xlrd中,单元格的数据类型有6种,
print(cell_value)
print(cell_type)
MY_EXCEL = xlwt.Workbook(encoding='utf-8') # 创建MY_EXCEL对象
excelsheet = MY_EXCEL.add_sheet('sheet1') # 创建工作表(创建excel里面的工作表)
for i in range(0,rows):
for j in range(1,columns):
value=sheet.cell_value(i,j)
if value != 0:
x=int(value-1)
va=int(i+1)
excelsheet.write(x, 0, va) # 在第x行第0列写入va
print(i,j,value)
# else:
# print("zhe %d ,%d"%(i,j))
# 0 - - 空(empty)
# 1 - - 字符串(string)
# 2 - - 数字(number)
# 3 - - date(日期)
# 4 - - boolean(布尔值)
# 5 - - error(错误)
MY_EXCEL.save('name.xls') # 保存在name.xls中