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")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章