網站首頁 編程語言 正文
一、需求:
合并xlsx文件
二、思路:
- 使用openpyxl讀取工作表,用ws.values()方法將讀取數據轉為生成器對象 ;
- 將生成器對象轉換為dataframe格式;
- 進行合并,存入Excel中。
三、ws.values()方法介紹
(1) ws.values()方法用于獲取工作表中的所有單元格的值。它返回一個生成器對象
,每個元素都是一個包含每行單元格值的元組
。
例如,假設有一個名為"Sheet1"的工作表,包含以下數據:
A | B | C
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
使用ws.values()方法將返回一個生成器對象,其中每個元素都是包含每行單元格值的元組。可以通過循環遍歷生成器對象來獲取每行的值。
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
ws = wb['Sheet1']
for row in ws.values():
print(row)
輸出:
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
(2) ws.iter_rows()方法用于遍歷工作表的每一行,并返回每行中的單元格對象。它也可以用于獲取每行的值,但需要額外的處理來提取每個單元格的值。
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows(values_only=True):
print(row)
輸出:
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
注:兩個方法區別在于使用ws.values()方法可以直接獲取每行的值作為元組,而ws.iter_rows()方法需要額外的參數和處理來獲取每行的值。
四、實現代碼
代碼文件和xlsx文件放在一個文件夾中。
import time
import glob
import openpyxl
import pandas as pd
import xlsxwriter
t1 = time.time()
files = glob.glob('*.xlsx')
DF_data = pd.DataFrame()
for f in files:
file = openpyxl.load_workbook(f,read_only=True) # 讀取每個文件
ws = file.worksheets[0] # 獲取工作簿中第一個表
data = ws.values
my_cols = next(data)[:] # 獲取首行
data = list(data)
df = pd.DataFrame(data,columns = my_cols)
DF_data = pd.concat([DF_data,df],ignore_index=True) #忽略首行
print(DF_data.info())
# 數據寫入
writer = pd.ExcelWriter('result.xlsx',engine='xlsxwriter',options={'strings_to_urls':False})
DF_data.to_excel(writer,sheet_name='Sheet1',index=False) #將DataFrame對象保存為Excel文件。
ws_temp = writer.sheets['Sheet1']
ws_temp.set_column(4,4, 30) #調整第5列寬,也可不加
writer.close()
t= time.time()-t1
print(f'程序運行時間:{t:.2f}秒')
原文鏈接:https://blog.csdn.net/xue_11/article/details/131611827
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-11-02 Mango?Cache緩存管理庫TinyLFU源碼解析_Golang
- 2022-04-18 Python基礎中的的if-else語句詳解_python
- 2023-01-13 解決安裝torch后,torch.cuda.is_available()結果為false的問題_py
- 2022-12-22 OpenHarmony如何調用電話服務API撥打電話_Android
- 2022-06-14 一文帶你搞懂Numpy中的深拷貝和淺拷貝_python
- 2022-05-25 kubectl操作命令及使用說明總結_云和虛擬化
- 2022-06-28 Python實現單鏈表中元素的反轉_python
- 2022-12-23 Kotlin?select使用方法介紹_Android
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支