zoukankan      html  css  js  c++  java
  • python读写excel之xlrd、xlwt、xlutils

    简介:

    xlrd主要用来读excel,针对.xls格式;

    xlwt主要用来写excel,针对.xls格式,超出excel 的单格内容长度上限32767,就会报错;

    xlutils结合xlrd可以达到修改excel文件目的,需要注意的是你必须同时安装这三个库;

    1、xlrd、xlwt、xlutils (只能操作.xls,不能操作.xlsx

    使用xlrd读取excel:

     1 # 导入模块
     2 import xlrd
     3 #读取excel操作
     4 def read_excel(path):
     5     all = []
     6     workbook = xlrd.open_workbook(path)
     7     sheet = workbook.sheet_by_index(1)
     8     #逐行读取,并添加进list
     9     for i in range(sheet.nrows):   
    10         rows = sheet.row_values(i)
    11         #print(rows)
    12         all.append(rows)
    13     return all
    14 
    15 #程序运行
    16 if __name__ == '__main__':
    17     path = r'D:WorkHomepythonexcel_parse71.xls'
    18     value = read_excel(path);
    19     for i in  value:
    20         print(i)
    21     print('读取成功')

    excel读写实现

     1 import  xlrd
     2 import  xlwt
     3 from xlutils.copy import copy
     4 
     5 def read_data(path):
     6     excel_data = xlrd.open_workbook(path)
     7     sheet_name = excel_data.sheet_names()[1]
     8     sheet  = excel_data.sheet_by_index(1)
     9     #print(sheet.)
    10     for i in range(sheet.nrows):
    11         rows = sheet.row_values(i)
    12         #rowval = rows.
    13         #print(rows)
    14         yield rows   ####如果不考虑内存损耗的话可以不用在这里使用迭代器
    15 '''
    16 ..................................................................
    17 在这里放弃使用xlwt,是由于xlwt只能创建一个全新的excel文件,
    18 然后对这个文件进行写入内容以及保存。但是大多数情况下是读
    19 入一个excel文件,然后进行修改或追加,这个时候就需要xlutils了。
    20 ..................................................................
    21 def write_excel_xls(wpath,sheet_name,row ,nrow,ncol):
    22     # 2. 创建Excel工作薄
    23     myWorkbook = xlwt.Workbook(wpath)
    24     # 3. 添加Excel工作表
    25     mySheet = myWorkbook.add_sheet(sheet_name)
    26     # 4. 写入数据
    27     for j in range(ncol):
    28         mySheet.write(nrow, j, row[j])
    29     # 5. 保存
    30     myWorkbook.save(wpath)
    31     print('写入成功')
    32 '''
    33 def write_excel_xls_append(wpath, sheet_name, rowvalue, nrow, ncol):
    34     workbook = xlrd.open_workbook(wpath)
    35     '''
    36     ###在这里是考虑到往文件中追加内容,而非覆盖
    37     #worksheet = workbook.sheet_by_index(0)
    38     #rows_old = worksheet.nrows    
    39     '''
    40     new_workbook = copy(workbook)
    41     new_worksheet = new_workbook.get_sheet(0)
    42     for j in range(ncol):
    43         new_worksheet.write(nrow, j, rowvalue[j])
    44     new_workbook.save(wpath)  # 保存工作簿
    45     print("写入数据成功!")
    46 
    47 def main():
    48       path = r'D:WorkHomepythonexcel_parse71.xls'
    49       wpath = r'D:WorkHomepythonexcel_parse71_new.xls'
    50       sheet_name = xlrd.open_workbook(path).sheet_names()[1]
    51       nrow = 0
    52       #nrow = xlrd.open_workbook(path).sheet_by_index(1).nrows
    53       ncol = xlrd.open_workbook(path).sheet_by_index(1).ncols
    54       read_data(path)
    55       for rowvalue in  read_data(path):
    56           #print(row)
    57           write_excel_xls_append(wpath, sheet_name, rowvalue, nrow, ncol)
    58           nrow += 1
    59 
    60 if __name__ == '__main__':
    61     main()
  • 相关阅读:
    币值转换
    抓老鼠啊~亏了还是赚了?
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    第七周作业
    第五周实验报告和总结
    第四次实验报告及总结
  • 原文地址:https://www.cnblogs.com/cooper-73/p/10949653.html
Copyright © 2011-2022 走看看