今天我试着用xlrd 和 xlwt 进行读写excel文件,后来发现,xlrd可以正常读取excel文件,但是xlwt只支持生成.xls格式的文件,不支持生成.xlsx格式的文件,demo代码如下:
excelRead.py:
# coding=utf-8
import xlrd
def read_xlrd(excelFile,sheetIndex):
data = xlrd.open_workbook(excelFile)
table = data.sheet_by_index(sheetIndex)
dataFile = []
for rowNum in range(table.nrows):
# if 去掉表头
if rowNum > 0:
if table.row(rowNum)[4].value == 'FROM~TO ':
dataFile.append(table.row_values(rowNum))
# dataFile.Selection = table.row_values(rowNum)[0]
# dataFile.InternalName = table.row_values(rowNum)[1]
print('read excel successful')
return dataFile
excelWrite.py:
# coding=utf-8
import xlwt
# import numpy as np
# xlwt不支持.xlsx格式,可以支持 .xls 格式
def write_xlwt(newExcelFile, data):
if data != []:
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('test')
realRowNum = 0
for rowNum in range(len(data)):
a=0
while a<10:
worksheet.write(realRowNum, 0, data[rowNum][1])
worksheet.write(realRowNum, 1, data[rowNum][3])
worksheet.write(realRowNum, 2, data[rowNum][0])
worksheet.write(realRowNum, 3, 'in')
if a==0:
worksheet.write(realRowNum, 4, str(10*a) + '_' + str(10*a+9))
worksheet.write(realRowNum, 5, str(10*a) + ' - ' + str(10*a+9)+'=Most Likely to have')
elif a==9:
worksheet.write(realRowNum, 4, str(10*a) + '_' + str(10*a+10))
worksheet.write(realRowNum, 5, str(10*a) + ' - ' + str(10*a+10)+'=Least Likely to have')
else:
worksheet.write(realRowNum, 4, str(10*a) + '_' + str(10*a+9))
worksheet.write(realRowNum, 5, str(10*a) + ' - ' + str(10*a+9))
worksheet.write(realRowNum, 6, str(a+1))
worksheet.write(realRowNum, 7, 10)
worksheet.write(realRowNum, 8, 0)
worksheet.write(realRowNum, 9, 0)
worksheet.write(realRowNum, 10, 0)
worksheet.write(realRowNum, 11, 0)
worksheet.write(realRowNum, 12, 1)
realRowNum = realRowNum + 1
a = a + 1
workbook.save(newExcelFile)
print('save excel successful')
excelProcess.py:
# coding=utf-8
import excelRead
import excelWrite
if __name__ == '__main__':
excelFile = 'C:\Users\Administrator\Desktop\InfoBase.xlsx'
sheetIndex = 0
dataFile = []
newExcelFile = 'C:\Users\Administrator\Desktop\InfoBase4.xls'
dataFile = excelRead.read_xlrd(excelFile=excelFile,sheetIndex=sheetIndex)
# print(dataFile)
excelWrite.write_xlwt(newExcelFile=newExcelFile, data=dataFile)
# print(excelFunction.read_xlrd(excelFile=excelFile))
you can take a look.