国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python從一個Excel表格提取數(shù)據(jù)填到另一個表格

這篇具有很好參考價值的文章主要介紹了Python從一個Excel表格提取數(shù)據(jù)填到另一個表格。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文,用Python從一個Excel表格提取數(shù)據(jù)填到另一個表格,詳情代碼中注釋都說明了,請親們詳細(xì)查閱:文章來源地址http://www.zghlxwxcb.cn/news/detail-523013.html

#將要對填的兩張xlsx表格放在同一個目錄,并在下方指定該目錄
路徑='G:\\Xct\\python'
#“填寫表”就是要填充數(shù)據(jù)的EXCEL表格
填寫表='東璟府-備案管理人員工資表.xlsx'
#有些工作表第一行是大標(biāo)題,第二或三行才是明細(xì)標(biāo)題(如:姓名等)
#為節(jié)省程序運(yùn)行時間,在這里事先指定好標(biāo)題行,如:“姓名”在第
#3行,就在下面填“3”,類推。
填寫表標(biāo)題行=3
#“數(shù)據(jù)表”就是用來搜索數(shù)據(jù)(不修改,只當(dāng)字典查)的EXCEL表格
數(shù)據(jù)表='三項(xiàng)目備案人員銀行賬號匯總.xlsx'
數(shù)據(jù)表標(biāo)題行=1
#由于EXCEL表格排版多種多樣,為簡化模型,本代碼只自動搜索并
#填充一列數(shù)據(jù),親們?nèi)绻畛涠嗔?,可自行加一個循環(huán),或修改
# 下面這個數(shù)字,反復(fù)運(yùn)行本代碼,即可實(shí)現(xiàn)多列數(shù)據(jù)的填充(本代
# 碼總是在列后一列后面新增一列來填充數(shù)據(jù),所以不會造成數(shù)據(jù)覆蓋)
#數(shù)據(jù)表要填充的列是指:例如,一張表中有一列是“銀行賬號”,而
#另一張表則沒有,現(xiàn)要將前一張表(數(shù)據(jù)表)的“銀行賬號”這一列
# 的數(shù)據(jù)填充到后一張表(填寫表)中,那么“銀行賬號”這列所在的
# 列數(shù),就填在這下面。
數(shù)據(jù)表要填充的列=2
#--------------------沒有意義的分割符---------------------
#導(dǎo)入日志模塊
import logging
logging.basicConfig(level=logging.DEBUG,format='%(asctime)s-%(levelname)s:%(message)s')
logging.disable(logging.CRITICAL)
#logging.debug(變量)
#--------------------沒有意義的分割符---------------------
#切換工作目錄
import os
原工作目錄 = os.getcwd()
logging.debug(f'原工作目錄:%s' % (原工作目錄))
#預(yù)存儲工作目錄
os.chdir(路徑)
現(xiàn)工作目錄 = os.getcwd()
logging.debug(f'現(xiàn)工作目錄:%s' % (現(xiàn)工作目錄))
#切換到工作目錄
#--------------------沒有意義的分割符---------------------
#讀取填寫表
#讀取Excel文件,需要導(dǎo)入相關(guān)函數(shù)
#coding=gbk
import openpyxl
from openpyxl import load_workbook
要填寫的表格 = load_workbook(填寫表)
#--------------------沒有意義的分割符---------------------
# 獲得所有sheet的名稱
#print(f'該工作簿共有如下工作表:\n{要填寫的表格.get_sheet_names()}')
#--------------------沒有意義的分割符---------------------
# 獲得當(dāng)前正在顯示的sheet, 也可以用wb.get_active_sheet()
工作表 = 要填寫的表格.active
#print(f'獲得當(dāng)前正在顯示的工作表:{工作表}')
#print(f'獲得當(dāng)前正在顯示的工作表名:{工作表.title}')
#--------------------沒有意義的分割符---------------------
# 獲得最大列和最大行
最大列數(shù)=工作表.max_column
#print('最大列數(shù):', 工作表.max_column)
最大行數(shù)=工作表.max_row
#print('最大行數(shù):', 工作表.max_row)
#--------------------沒有意義的分割符---------------------
#定位“姓名”列
for 變量 in range(1,最大列數(shù)+1):
    單元格= 工作表.cell(row=填寫表標(biāo)題行, column=變量)
    if 單元格.value=='姓名':
        姓名列=單元格.column
        #print(姓名列)
#--------------------沒有意義的分割符---------------------
'''
#遍歷姓名
for 行變量 in range(填寫表標(biāo)題行+1,最大行數(shù)):
    單元格 = 工作表.cell(row=行變量, column=姓名列)
    if not 單元格.value==None:
        print(單元格.value)
'''
#--------------------沒有意義的分割符---------------------

#讀取數(shù)據(jù)表
要查找的表格 = load_workbook(數(shù)據(jù)表)
#--------------------沒有意義的分割符---------------------
#獲得當(dāng)前正在顯示的工作表
數(shù)據(jù)工作表 = 要查找的表格.active
#print(f'獲得當(dāng)前正在顯示的工作表:{數(shù)據(jù)工作表.title}')
#--------------------沒有意義的分割符---------------------
# 獲得最大列和最大行
數(shù)據(jù)表最大列數(shù)=數(shù)據(jù)工作表.max_column
#print('數(shù)據(jù)表最大列數(shù):', 數(shù)據(jù)工作表.max_column)
數(shù)據(jù)表最大行數(shù)=數(shù)據(jù)工作表.max_row
#print('數(shù)據(jù)表最大行數(shù):', 數(shù)據(jù)工作表.max_row)
#--------------------沒有意義的分割符---------------------
#定位“數(shù)據(jù)姓名”列
for 數(shù)據(jù)變量 in range(1,數(shù)據(jù)表最大行數(shù)+1):
    數(shù)據(jù)單元格= 數(shù)據(jù)工作表.cell(row=數(shù)據(jù)表標(biāo)題行, column=數(shù)據(jù)變量)
    if 數(shù)據(jù)單元格.value=='姓名':
        數(shù)據(jù)姓名列=數(shù)據(jù)單元格.column
        #print(數(shù)據(jù)姓名列)
#--------------------沒有意義的分割符---------------------
'''
#遍歷數(shù)據(jù)表姓名
for 數(shù)據(jù)行變量 in range(數(shù)據(jù)表標(biāo)題行+1,數(shù)據(jù)表最大行數(shù)):
    數(shù)據(jù)單元格 = 數(shù)據(jù)工作表.cell(row=數(shù)據(jù)行變量, column=數(shù)據(jù)姓名列)
    if not 數(shù)據(jù)單元格.value==None:
        print(數(shù)據(jù)單元格.value)
'''
#--------------------沒有意義的分割符---------------------
#遍歷填寫表姓名
for 行變量 in range(填寫表標(biāo)題行+1,最大行數(shù)):
    單元格 = 工作表.cell(row=行變量, column=姓名列)
    if not 單元格.value==None:
        填寫表姓名=單元格.value
        #遍歷數(shù)據(jù)表姓名
        for 數(shù)據(jù)行變量 in range(數(shù)據(jù)表標(biāo)題行 + 1, 數(shù)據(jù)表最大行數(shù)):
            數(shù)據(jù)單元格 = 數(shù)據(jù)工作表.cell(row=數(shù)據(jù)行變量, column=數(shù)據(jù)姓名列)
            if not 數(shù)據(jù)單元格.value == None:
                數(shù)據(jù)表姓名=數(shù)據(jù)單元格.value
                #搜索兩表姓名
                if 填寫表姓名==數(shù)據(jù)表姓名:
                    #在填寫表的最后一列后面,新增一列,用來填充搜索結(jié)果
                    修改填寫表單元格=工作表.cell(row=行變量, column=最大列數(shù)+1)
                    #定位到數(shù)據(jù)表的數(shù)據(jù)單元格,并獲取它的值(搜索的結(jié)果)
                    數(shù)據(jù)表數(shù)據(jù)源單元格=數(shù)據(jù)工作表.cell(row=數(shù)據(jù)行變量, column=數(shù)據(jù)表要填充的列)
                    #將“搜索結(jié)果”填入“填寫表”的當(dāng)前工作表中的最后一列
                    修改填寫表單元格.value = 數(shù)據(jù)表數(shù)據(jù)源單元格.value
                    #print (f'{填寫表姓名}的銀行賬號是:{修改填寫表單元格.value}')
#--------------------沒有意義的分割符---------------------
#保存表格
要填寫的表格.save(填寫表)
#--------------------沒有意義的分割符---------------------
# 打開修改后的Excel表格文件
import os
os.startfile(路徑+'//'+填寫表)
#--------------------沒有意義的分割符---------------------
'''
寫在后面的話:
1,為了防止各個工作表格式不同而出錯,我就不再遍歷所有工作
表了,需要在同一個工作簿中填充多張工作表的親,可自行將要
填充數(shù)據(jù)的工作表前置展示,然后保存退出,運(yùn)行一下上述代碼
就會自動填充當(dāng)前工作表。
2,需要注意的是:
如果要修改的EXCEL表格被打開著,會造成出錯,無法保存,所
以,運(yùn)行代碼前,需要先退出要修改的EXCEL表格。
3,日志模塊可以刪掉,代碼中已經(jīng)關(guān)閉了,這是測試時用的
4,作為國人,我討厭英文,所以能用中文的地方盡量用中文,
習(xí)慣看鳥語的親敬請見諒。
5,我是初學(xué)者,代碼中做了大量注釋,供自己學(xué)習(xí)、復(fù)習(xí)用,嫌
我煩的親還望海涵。如有錯誤或更簡便的方法,還請直言不諱。
6,除了用openpyxl,還有其它的模塊也能實(shí)現(xiàn)。我學(xué)Python不為
考級,故不考慮孔已己那樣的“回字有幾種寫法”,只要能解決現(xiàn)
實(shí)問題,一招制敵足矣。對其它模塊感興趣的親,可以參考后面
我問ChatGPT要來的答案——pandas庫和xlrd庫
                                                                            ——將出東方 2023-03-23
'''
#以下是GhatGPT的原文,一字未改,但請自行測試:
'''
當(dāng)然可以!以下是一個使用Python和openpyxl庫修改Excel單元格并
保存的示例代碼:
首先,確保已安裝openpyxl庫:
```
pip install openpyxl
```

接下來,可以使用以下代碼作為模板:
import openpyxl
# 加載Excel文檔
workbook = openpyxl.load_workbook('example.xlsx')
# 選擇要編輯的工作表
worksheet = workbook['Sheet1']
# 修改單元格內(nèi)容
worksheet['A1'] = 'Hello World!'
# 保存修改后的Excel文檔
workbook.save('example.xlsx')
```

在這個示例中,我們首先使用 `load_workbook()` 方法加載了一個
名為 `example.xlsx` 的Excel文檔。然后,我們選擇要編輯的工作表,
這里是 `Sheet1`。接著,我們使用 `worksheet['A1']` 訪問了單元格
 `A1` 并將其內(nèi)容修改為 `Hello World!`。最后,我們使用 `save()` 方
 法保存了修改后的Excel文檔。

希望這可以幫到你!
'''
#在我的追問下,GhatGPT給出的另外兩個方法:
'''
好的,這是一個很常見的任務(wù),你需要使用Python的pandas庫來讀
取和寫入Excel表格,以及使用xlrd庫來搜索數(shù)據(jù)。下面是一個基本
的代碼框架,你可以根據(jù)自己的需要進(jìn)行修改和擴(kuò)展:

```python
import pandas as pd
import xlrd

# 讀取要搜索的Excel表格
search_file = xlrd.open_workbook('search.xlsx')
search_sheet = search_file.sheet_by_index(0)

# 讀取要填寫數(shù)據(jù)的Excel表格
target_file = pd.read_excel('target.xlsx')

# 遍歷搜索表格中的每一行,查找匹配的數(shù)據(jù)并填寫到目標(biāo)表格中
for row_idx in range(1, search_sheet.nrows):
    search_value = search_sheet.cell(row_idx, 0).value  # 獲取要搜索的數(shù)據(jù)
    target_row = target_file[target_file['列名'] == search_value]  # 在目標(biāo)表格中查找匹配的行
    if not target_row.empty:
        # 如果找到匹配的行,則將搜索表格中的數(shù)據(jù)填寫到目標(biāo)表格中
        target_file.at[target_row.index[0], '要填寫的列名'] = search_sheet.cell(row_idx, 1).value

# 保存目標(biāo)表格
target_file.to_excel('target.xlsx', index=False)
```

在上面的代碼中,你需要將其中的`search.xlsx`和`target.xlsx`替換
為你實(shí)際使用的文件名,并將`列名`和`要填寫的列名`替換為你實(shí)
際使用的列名。你還需要安裝xlrd和pandas庫,如果你還沒有安裝
的話。
'''
#還有一個方法:
'''
好的,這個任務(wù)可以使用Python中的pandas庫來完成。首先,我們
需要安裝pandas庫,這可以通過在終端中運(yùn)行以下命令來完成:

```
pip install pandas
```

然后,我們需要導(dǎo)入pandas庫并讀取要搜索的Excel表格和要填入
數(shù)據(jù)的Excel表格。假設(shè)要搜索的Excel表格名為“search.xlsx”,要
填入數(shù)據(jù)的Excel表格名為“output.xlsx”,則可以使用以下代碼來完
成:

```python
import pandas as pd

# 讀取要搜索的Excel表格
df_search = pd.read_excel('search.xlsx')

# 讀取要填入數(shù)據(jù)的Excel表格
df_output = pd.read_excel('output.xlsx')
```

接下來,我們可以使用pandas庫中的merge函數(shù)將兩個表格合并。
假設(shè)要在要填入數(shù)據(jù)的Excel表格中填入名為“John”的人的數(shù)據(jù),
則可以使用以下代碼:

```python
# 將兩個表格合并
df_merged = pd.merge(df_output, df_search[df_search['Name'] == 'John'], on='ID', how='left')

# 在要填入數(shù)據(jù)的Excel表格中填入搜索到的數(shù)據(jù)
df_merged.loc[df_merged['Name_y'].notna(), 'Data'] = df_merged['Data'] + df_merged['Name_y']

# 刪除不需要的列
df_merged = df_merged.drop(['Name_y'], axis=1)

# 保存結(jié)果到要填入數(shù)據(jù)的Excel表格中
df_merged.to_excel('output.xlsx', index=False)
```

這個代碼將在要填入數(shù)據(jù)的Excel表格中搜索名為“John”的人,然
后將他們的數(shù)據(jù)填入“Data”列中。最后,結(jié)果將保存到要填入數(shù)
據(jù)的Excel表格中。
'''

到了這里,關(guān)于Python從一個Excel表格提取數(shù)據(jù)填到另一個表格的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【辦公自動化】使用Python一鍵提取PDF中的表格到Excel

    【辦公自動化】使用Python一鍵提取PDF中的表格到Excel

    ? ???♂? 個人主頁:@艾派森的個人主頁 ???作者簡介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對你有幫助的話, 歡迎評論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、Python處理Excel 二、提取PDF表格到excel 三、往期推薦 文末推薦? 文末福利 ? Pyth

    2024年02月13日
    瀏覽(23)
  • python-自動篇-辦公-案例-一鍵將word中的表格提取到excel文件中

    python-自動篇-辦公-案例-一鍵將word中的表格提取到excel文件中

    前提:您電腦上有python,還有就是編輯器vscode或其他 第一:您復(fù)制代碼到vscode運(yùn)行,花現(xiàn)下面的報(bào)錯,這時候需要pip按照對應(yīng)的庫 其實(shí)就是在:cmd中輸入:pip install +對應(yīng)報(bào)錯需要的庫,如上是docx 當(dāng)然,也不會很順利只使用“pip”就能解決,比如 使用pip時,出現(xiàn)紅色報(bào)錯啦

    2024年01月22日
    瀏覽(52)
  • 【辦公自動化】使用Python一鍵提取PDF中的表格到Excel(文末送書5本)

    【辦公自動化】使用Python一鍵提取PDF中的表格到Excel(文末送書5本)

    ? ???♂? 個人主頁:@艾派森的個人主頁 ???作者簡介:Python學(xué)習(xí)者 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對你有幫助的話, 歡迎評論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+ 目錄 一、Python處理Excel 二、提取PDF表格到excel 三、往期推薦 文末推薦? 文末福利 ? Pyth

    2024年02月14日
    瀏覽(26)
  • python表格操作,數(shù)據(jù)提取分析的用法(2)

    python表格操作,數(shù)據(jù)提取分析的用法(2)

    ? 之前我在博客里貼出了操作表格的代碼,后面有2位粉絲私聊我說不會用啊,不知道怎么用,我聽了之后就立馬想出一篇如何使用的博客,誰叫我愛粉絲咧 好廢話不多說,先貼出操作表格代碼的地址?點(diǎn)這里 1)代碼段 我們只需要傳入表的路徑和表頁就能自動讀取我們的數(shù)據(jù)

    2023年04月18日
    瀏覽(21)
  • 通過Python的pdfplumber庫提取pdf中表格數(shù)據(jù)

    通過Python的pdfplumber庫提取pdf中表格數(shù)據(jù)

    大家好,我是空空star,本篇給大家分享一下 《通過Python的pdfplumber庫提取pdf中表格數(shù)據(jù)》 。 pdfplumber是一個用于從PDF文檔中提取文本和表格數(shù)據(jù)的Python庫。它可以幫助用戶輕松地從PDF文件中提取有用的信息,例如表格、文本、元數(shù)據(jù)等。pdfplumber庫的特點(diǎn)包括:簡單易用、速度

    2024年02月06日
    瀏覽(23)
  • Python小姿勢 - Python操作Excel表格數(shù)據(jù)

    Python小姿勢 - Python操作Excel表格數(shù)據(jù)

    Python操作Excel表格數(shù)據(jù) 在日常工作中,我們經(jīng)常會遇到一些需要對表格數(shù)據(jù)進(jìn)行處理的情況,比如:數(shù)據(jù)清洗、數(shù)據(jù)分析、數(shù)據(jù)可視化等。對于這些任務(wù),我們可以使用Python來進(jìn)行操作。 在Python中操作Excel表格數(shù)據(jù),我們可以使用xlrd和xlwt這兩個庫。xlrd是用于讀取Excel文件的

    2023年04月25日
    瀏覽(23)
  • Python如何讀取Excel表格數(shù)據(jù)

    Python如何讀取Excel表格數(shù)據(jù)

    環(huán)境: Pycharm IDE 3.9? 2021.2.1 Excel作為目前主要的流行數(shù)據(jù)表格,其存儲的數(shù)據(jù)整齊,強(qiáng)可觀性。需要對大量的數(shù)據(jù)進(jìn)行分析時,可以利用python腳本語言進(jìn)行數(shù)據(jù)分析。 python讀取excel數(shù)據(jù): 1.打開 pycharm IDE ,新建項(xiàng)目,在IDE 的UI界面下點(diǎn)擊左下角的 Python Packages .? ?此項(xiàng)用于安

    2024年02月05日
    瀏覽(29)
  • sqlserver導(dǎo)出數(shù)據(jù)為excel再導(dǎo)入到另一個數(shù)據(jù)庫

    要將SQL Server中的數(shù)據(jù)導(dǎo)出為Excel文件,然后再將該Excel文件導(dǎo)入到另一個數(shù)據(jù)庫中,你可以按照以下步驟進(jìn)行操作: 請注意,上述腳本中的 -U 和 -P 選項(xiàng)用于提供連接數(shù)據(jù)庫的用戶名和密碼。確保將腳本中的其他參數(shù)替換為實(shí)際的值,并根據(jù)需要進(jìn)行其他適當(dāng)?shù)恼{(diào)整。

    2024年01月25日
    瀏覽(25)
  • 提取txt文件中指定數(shù)據(jù)至excel中(python)

    提取txt文件中指定數(shù)據(jù)至excel中(python)

    注意:加 r 的原因是避免轉(zhuǎn)義符的誤解 推薦官網(wǎng),用來檢驗(yàn)自己的正則表達(dá)式是否正確: 菜鳥工具 相關(guān)函數(shù)庫和函數(shù)有: import re 、 re.findall 、 re.search h(tuple格式的,不可以改) h_new hly 目的:不斷在hly內(nèi)加入新的元素,要求元素是浮點(diǎn)型,小數(shù)位數(shù)為2位,w為尋找的總體,

    2023年04月10日
    瀏覽(89)
  • Python批處理(一)提取txt中數(shù)據(jù)存入excel

    Python批處理(一)提取txt中數(shù)據(jù)存入excel

    現(xiàn)從冠層分析軟件中保存了葉面積指數(shù)分析的結(jié)果,然而軟件保存格式為txt,且在不同的文件夾中,每個文件夾的txt文件數(shù)量不固定,但是txt文件格式固定?,F(xiàn)需要批量處理這些txt文件,獲取頭三行的數(shù)據(jù),并存入excel中。 1、file = open(file_name, ‘r’)。使用open()函數(shù)打開名為

    2024年02月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包