python合并excel某一列内容_Python3对Excel的读写操作(实现将两个.xls文档按照列追加的方式合并为一个xlsx文档)...

Python3对Excel的读写操作

1、安装所需要的包

操作xls、xlsx格式的表格文件,需要用到的库如下:

读取:xlrd

写入:xlwt

修改(追加写入):xlutils

操作xlsx格式的表格文件,需要用到的库如下:

读取/写入:openpyxl

( xlrd模块0.8版本后,对于xlsx格式的表格,使用xlrd也是可以读取的,但是不能写入,会出现文档打不开的情况)

# import xlrd

# import xlwt

# data = xlrd.open_workbook('result1.xlsx') #打开需要操作的Excel文档,xlsx,xls均可

# table = data.sheet_by_index(0) #获取工作簿中的表格

#sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格

# nrows = table.nrows #获取行数

# print(nrows)

# ncols = table.ncols #获取列数

# print(ncols)

# rowvalue = table.row_values(1) #获取工作簿中的第1行

# print(rowvalue)

# colvalue = table.col_values(1) #获取工作簿中的第1列

# print(colvalue)

2、对excel文档使用进行追加

注意这里如果将Try1.xls文档改为Try1.xlsx文档则会出现报错,这是因为xlrd模块0.8版本后不支持以xlsx为后缀名文件

import xlrd

from xlutils.copy import copy

def Excel_append(path, value):

index = len(value) # 获取需要写入数据的行数

workbook = xlrd.open_workbook(path) # 打开工作簿

sheets = workbook.sheet_names() # 获取工作簿中的所有表格

worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格

rows_old = worksheet.nrows # 获取表格中已存在的数据的行数

new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象

new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格

for i in range(0,index):

for j in range(0, len(value[i])):

new_worksheet.write(i+rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入

new_workbook.save(path) # 保存工作簿

return 0

book_name_xls = 'Try1.xls'

value = [["小兰", "小兰", "小兰", "小兰", "小兰", 123, 234],

["小兰", "小兰", "小兰", "小兰", "小兰", 2352],

["小兰", "小兰", "小兰", "小兰", "小兰"]]

Excel_append(book_name_xls, value)

3、实现将两个Excel文档(.xls文档)按照列追加的方式合并为一个(.xlsx文档)

因为.xls文档只有256列可能无法放下所有的数据,而.xlsx文档的列数会更多。

import xlrd

import xlwt

import xlsxwriter

file_name = "result.xlsx"

workbook = xlsxwriter.Workbook(file_name)

worksheet = workbook.add_worksheet('Sheet1')

data = xlrd.open_workbook('Try1.xls') #读取try1文档,按照列追加方式写入result文档中

table = data.sheet_by_index(0)

ncols1 = table.ncols

for i in range(ncols1):

colvalue = table.col_values(i)

worksheet.write_column(0,i,colvalue)

data = xlrd.open_workbook('Try2.xls') #读取try2文档,接着在result文档中按照列追加方式写入

table2 = data.sheet_by_index(0)

ncols2 = table2.ncols

for i in range(ncols2):

colvalue2 = table2.col_values(i)

worksheet.write_column(0,i+ncols1,colvalue2)

#关闭工作簿

workbook.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值