用python操作xls、xlsx格式Excel方法:
1:用xlrd取,xlwt写(xls格式只能用这种方式,不支持openpyxl)
xlrd 取读 (所有数字均为下标)
data = xlrd.open_workbook("d:/Temp/PythonTest/b1.xls")#所有sheet页名称sheetNames = data.sheet_names()#第 i sheet页全部数据oneSheetData = data.sheets()[i]#第 j 行数据rowData = oneSheetData.row_values(j)#第 k 列数据colData = oneSheetData.col_values(k)#总行数rowNum = oneSheetData.nrows#总列数cloNum = oneSheetData.ncols#单元格数据n:行,m:列cellData = oneSheetData.cell(n,m).value
xlwt
1:修改#复制已用xlrd读取的xsl文件--前面的datafrom xlutils.copy import copyworkbook = copy(data)#获取对应的sheet页wbSheet = workbook.get_sheet(i)
2:新建#打开工作空间workBook = xlwt.Workbook(encoding="UTF-8")#添加sheet页,并命名wbSheet = workBook.add_sheet("sheetName")
3:写入#写入对应的单元格数据wbSheet.write(x,y,"text")#保存(完整的路径及名称,修改时,文件名不要变;新建时用新的文件名)workbook.save("d:/Temp/PythonTest/b1.xls")
2用openpyxl操作:
openpyxl 取读
workbook = openpyxl.load_workbook("d:/Temp/PythonTest/a1.xlsx")# 获取当前活跃sheet页,默认第一个sheet# wbSheet = workbook.active#获取所有sheet页名称sheetAllName = workbook.get_sheet_names()#根据sheet页名称获取sheet页wbSheet = workbook.get_sheet_by_name(sheetAllName[i])#获取sheet页所有的行rowsData = wbSheet.rows#获取sheet页所有的列columnsData = wbSheet.columns#单元格数据n:行,m:列cellData = wbSheet.cell(n,m).value#用表格表格编号获取cellData = wbSheet.cell("A1").value
写入
1:修改#已取读的sheet页可以用[坐标].value = 值 来修改wbSheet["A3"].value = "text"#插入一列数据wbSheet.append([])#保存(完整的路径及名称,修改时,文件名不要变;新建时用新的文件名)workbook.save("d:/Temp/PythonTest/a1.xlsx")
2:新建#打开工作空间workBook = openpyxl.Workbook()#然后取读sheet页wbSheet = workbook.active#执行修改步骤添加数据#保存(完整的路径及名称,修改时,文件名不要变;新建时用新的文件名)workbook.save("d:/Temp/PythonTest/a2.xlsx")
注意:
python打开文件报错OSError: [Errno 22] Invalid argument:时
1、用/代替\\2、盘符换成小写D:->d: