python读写excel(附上将一个文件夹下所有excel文件合并成一个文件的代码)
2017-09-18 23:30
981 查看
xlrd读取excel文件
不知道sheet是什么的可以看下图,红圈的两个框框就是一个excel文件下的两个sheet。该excel文件下第一个sheet是infoimport xlrd excel = xlrd.open_workbook(f) #通过索引顺序获取 sheet = data.sheets()[0] # 通过索引获取sheet,这里是获取第一个sheet sheet = excel.sheet_by_index(0) #通过名称获取 sheet = data.sheet_by_name(u'Sheet1') # 获取总行数 sheet.nrows # 获取总列数 sheet.ncols # 获取第0行的值,返回一个列表 table.row_values(0) # 获取第0列的值,返回一个列表 table.col_values(0)
xlwt写入excel文件
# import xlwt excel = xlwt.Workbook() # 为excel文件新增一个sheet sheet = a.add_sheet('sheet1', cell_overwrite_ok=True) # 写入数据,row行,col列,value列 row = 1 col = 1 value = 'hello world' sheet.write(row, col, value) # 保存excel文件 file_name = 'test.xls' a.save(file_name)
xlutils写入excel
from xlutils.copy import copy old = xlrd.open_workbook(file_name) # copy一份excel文件 newExcel = copy(old) # 获取sheet sheet = newExcel.get_sheet(0) # 写入数据,row行,col列,value需要写入的值 sheet.write(row, col, value) # 保存excel文件,文件名为file_name newExcel.save(file_name)
合并同一个文件夹下的excel文件
# encoding:utf-8 import xlrd import os import xlwt from xlutils.copy import copy; ''' 思路: 1.获取路径下所有文件,注意 本代码没有异常处理,所有该文件夹下只能放excel文件,否则合并失败 2.新建一个excel文件,用于存储全部数据 3.逐个打开excel文件,逐行读取数据,再用一个列表来保存每行数据。最后该列表中会存储所有的数据 4.向excel文件中逐行写入 ''' def get_allfile_msg(file_dir): for root, dirs, files in os.walk(file_dir): ''' print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 print(files) #当前路径下所有非目录子文件 ''' return root, dirs, files ''' 将目录的路径加上'/'和文件名,组成文件的路径 ''' def get_allfile_url(root, files): i = 0 allFile_url = [] for f in files: i += 1 if i == len(files): break file_url = root + '/' + f allFile_url.append(file_url) return allFile_url def all_to_one(root, allFile_ 4000 url, file_name='allExcel.xls', title=None): # 首先在该目录下创建一个excel文件,用于存储所有excel文件的数据 file_name = root + '/' + file_name create_excel(file_name, title) list_row_data = [] for f in allFile_url: # 打开excel文件 print '打开%s文件' % f excel = xlrd.open_workbook(f) # 根据索引获取sheet,这里是获取第一个sheet table = excel.sheet_by_index(0) print '该文件行数为:%d,列数为:%d' % (table.nrows,table.ncols) # 获取excel文件所有的行 for i in range(table.nrows): # 跳过第零行,一般为表头 if i == 0: i += 1 continue row = table.row_values(i) # 获取整行的值,返回列表 list_row_data.append(row) print '总数据量为%d' % len(list_row_data) # 写入all文件 add_row(list_row_data, file_name) # 创建文件名为file_name,表头为title的excel文件 def create_excel(file_name, title): print '创建文件%s' % file_name a = xlwt.Workbook() # 新建一个sheet table = a.add_sheet('sheet1', cell_overwrite_ok=True) # 写入数据 for i in range(len(title)): table.write(0, i, title[i]) a.save(file_name) # 向文件中添加n行数据 def add_row(list_row_data, file_name): # 打开excel文件 allExcel1 = xlrd.open_workbook(file_name) sheet = allExcel1.sheet_by_index(0) # copy一份文件,准备向它添加内容 allExcel2 = copy(allExcel1) sheet2 = allExcel2.get_sheet(0) # 写入数据 i = 1 for row_data in list_row_data: for j in range(len(row_data)): sheet2.write(sheet.nrows + i, j, row_data[j]) i += 1 # 保存文件,将原文件覆盖 allExcel2.save(file_name) print '合并完成' if __name__ == '__main__': # 设置文件夹路径, file_dir = 'C:/test/24' # 获取目录的路径,路径下的目录名,路径下的文件名 root, dirs, files = get_allfile_msg(file_dir) # 拼凑目录路径+文件名,组成文件的路径,列表 allFile_url = get_allfile_url(root, files) # 设置文件名,用于保存数据 file_name = 'test.xls' # 设置excle文件表头 title = ['A','B','C'] all_to_one(root, allFile_url, file_name=file_name, title=title)
相关文章推荐
- [置顶] 【python Excel 合并】python合并同一个文件夹下所有excel文件
- [置顶] 【python txt合并】python合并同一个文件夹下所有txt文件
- python实现将文件夹内所有txt文件合并成一个文件
- [置顶] 【python PDF合并】python 合并同一个文件夹下所有PDF文件
- C#.NET读取一个文件夹下所有excel文件的代码
- python实现将文件夹内所有txt文件合并成一个文件
- Python实现合并同一个文件夹下所有txt文件的方法示例
- Python实现合并同一个文件夹下所有PDF文件的方法示例
- python之文件的读写和文件目录以及文件夹的操作实现代码
- JAVA 一个简单的文件写入代码(遍历文件夹获取所有文件、写入缓冲池、获取文件绝对路径、按后缀名过滤文件)
- python程序设计基础5:python文件使用(遍历一个文件夹中所有的图片)
- python列出一个文件夹及其子目录的所有文件
- 删除一个文件夹中所有的文件? 写出代码.
- Python列出一个文件夹及其子目录的所有文件
- 【13】python列表去重/寻找一个文件夹中的所有文件/函数返回多个值
- Python列出一个文件夹及其子目录的所有文件
- python 遍历一个文件夹下所有文件名称
- Python遍历文件夹和读写文件的实现代码
- Python遍历文件夹和读写文件的实现代码
- python合并不同文件夹下所有文件