python---合并两个excel表格内容

需求描述:

示例:两个excel表格如下:

    

1.xlsx                                                          2.xlsx

现要将上面两个表格合并如下:

合并.csv

解决方法:

CSV(Comma Separated Values,逗号分隔值 ),是一个纯文本格式,用逗号分隔一系列值。它存储数据,但不包含格式,公式,宏等。作为开发人员,以编程方式操作CSV很容易,因为毕竟它们是简单的文本文件。

python 读写模式:
r :只读 
r+ : 读写 
w : 新建(会对原有文件进行覆盖) 
a : 追加 
b : 二进制文件

常用的模式有:
“a” 以“追加”模式打开, (从 EOF 开始, 必要时创建新文件) 
“a+” 以”读写”模式打开 
“ab” 以”二进制 追加”模式打开 
“ab+” 以”二进制 读写”模式打开

“w” 以”写”的方式打开 
“w+” 以“读写”模式打开 
“wb” 以“二进制 写”模式打开 
“wb+” 以“二进制 读写”模式打开

“r+” 以”读写”模式打开 
“rb” 以”二进制 读”模式打开 
“rb+” 以”二进制 读写”模式打开

该方法中,数字需特殊处理。否则运行如下程序将报错【TypeError: write() argument must be str, not float】

# -*- coding:utf8 -*-
# xlrd模块主要用于读取Excel
import xlrd as xl
import os
import re

# 过滤重复的人,并保存到txt文件里


def readExcel(fileName="", sheetName="Sheet1"):
    # 打开fileName表格
    xls_file = xl.open_workbook(fileName)  # 打开文件
    xls_sheet = xls_file.sheet_by_name(sheetName)  # 通过工作簿名称获
    cv0 = xls_sheet.col_values(0)  # 第一列所有的值
    cv1 = xls_sheet.col_values(1)  # 第二列所有的值
    cv2 = xls_sheet.col_values(2)  # 第三列所有的值

    # 打开2.xlsx
    xls_file2 = xl.open_workbook("2.xlsx")  # 打开文件
    xls_sheet2 = xls_file2.sheet_by_name(sheetName)  # 通过工作簿名称获
    sheet2cv0 = xls_sheet2.col_values(0)  # 第一列所有的值
    sheet2cv1 = xls_sheet2.col_values(1)  # 第二列所有的值

    for index, nameItem in enumerate(cv0):
        tmpIndex = sheet2cv0.index(nameItem)
        # print("tmpIndex=", tmpIndex)
        # “a+” 以”读写”模式打开,追加
        with open("合并.csv", "a+", encoding="utf-8") as f:

            f.writelines(
                [nameItem,  ",", cv1[index], ",", cv2[index], ",", sheet2cv1[tmpIndex], "\n"])


if __name__ == '__main__':
    readExcel("1.xlsx")

 

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值