亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實現(xiàn)批量CSV轉(zhuǎn)Excel的高性能處理方案

 更新時間:2025年09月01日 09:15:54   作者:小莊-Python辦公  
在日常辦公中,我們經(jīng)常需要將CSV格式的數(shù)據(jù)轉(zhuǎn)換為Excel文件,本文將介紹一個基于Python的高性能解決方案,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、場景需求

在日常辦公中,我們經(jīng)常需要將CSV格式的數(shù)據(jù)轉(zhuǎn)換為Excel文件。特別是當(dāng)遇到以下情況時:

需要處理數(shù)十萬行的大型數(shù)據(jù)文件

要求保留原始數(shù)據(jù)格式(如數(shù)字、文本等)

需要對表頭和內(nèi)容應(yīng)用不同的樣式

需要批量轉(zhuǎn)換多個CSV文件

本文將介紹一個基于Python的高性能解決方案。

二、技術(shù)方案

我們使用pyexcelerate庫來實現(xiàn)高性能的Excel文件生成,相比傳統(tǒng)的openpyxl或pandas,它在處理大規(guī)模數(shù)據(jù)時速度更快。

用途安裝
pyexcelerateExcel寫入pip install pyexcelerate -i https://pypi.tuna.tsinghua.edu.cn/simple/
os獲取路徑內(nèi)置庫無需安裝
csv讀寫csv文件內(nèi)置庫無需安裝

三、核心代碼

核心代碼

import csv
import os
import time
from pyexcelerate import Workbook, Style, Font, Fill, Color, Alignment

# 預(yù)定義表頭樣式
header_style = Style(
    font=Font(bold=True, size=9, color=Color(255, 255, 255), family='Arial'),
    fill=Fill(background=Color(192, 0, 0)),  # 紅色背景
    alignment=Alignment(horizontal='center', vertical='center')
)

# 單元格樣式(普通文本)
content_style = Style(
    font=Font(size=9, family='Arial'),
    alignment=Alignment(horizontal='center', vertical='center')
)

def csv_to_excel(csv_path, excel_path):
    """將CSV文件轉(zhuǎn)換為Excel文件"""
    start_time = time.time()
    
    # 讀取CSV數(shù)據(jù)
    with open(csv_path, 'r', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)
        header = next(reader)
        data = list(reader)
    
    # 創(chuàng)建Excel工作簿
    wb = Workbook()
    ws = wb.new_sheet("Sheet1")
    
    # 寫入數(shù)據(jù)并應(yīng)用樣式
    for row_idx, row_data in enumerate([header] + data, start=1):
        for col_idx, value in enumerate(row_data, start=1):
            ws.set_cell_value(row_idx, col_idx, value)
            ws.set_cell_style(row_idx, col_idx, 
                             header_style if row_idx == 1 else content_style)
    
    # 保存Excel文件
    os.makedirs(os.path.dirname(excel_path), exist_ok=True)
    wb.save(excel_path)
    
    print(f"轉(zhuǎn)換完成,耗時:{time.time() - start_time:.2f}秒")
    print(f"文件已保存至:{os.path.abspath(excel_path)}")

四、批量處理方案

如果需要批量處理多個CSV文件,可以使用以下代碼:

def batch_convert(csv_folder, output_folder):
    """批量轉(zhuǎn)換文件夾中的所有CSV文件"""
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    for filename in os.listdir(csv_folder):
        if filename.endswith('.csv'):
            csv_path = os.path.join(csv_folder, filename)
            excel_name = os.path.splitext(filename)[0] + '.xlsx'
            excel_path = os.path.join(output_folder, excel_name)
            
            print(f"正在處理: {filename}")
            csv_to_excel(csv_path, excel_path)

五、性能優(yōu)化

樣式預(yù)定義:提前定義好樣式對象,避免重復(fù)創(chuàng)建

批量寫入:雖然示例中是逐個單元格寫入,但pyexcelerate內(nèi)部已做優(yōu)化

類型處理:可擴展代碼自動識別數(shù)字列并轉(zhuǎn)換格式

六、使用示例

if __name__ == "__main__":
    # 單文件轉(zhuǎn)換
    csv_to_excel('input.csv', 'output/output.xlsx')
    
    # 批量轉(zhuǎn)換
    batch_convert('csv_files', 'excel_outputs')

完整代碼

import csv
import os
import time
from pyexcelerate import Workbook, Style, Font, Fill, Color, Alignment

# 預(yù)定義表頭樣式
header_style = Style(
    font=Font(bold=True, size=9, color=Color(255, 255, 255), family='Arial'),
    fill=Fill(background=Color(192, 0, 0)),  # 紅色背景
    alignment=Alignment(horizontal='center', vertical='center')
)

# 單元格樣式(普通文本)
content_style = Style(
    font=Font(size=9, family='Arial'),
    alignment=Alignment(horizontal='center', vertical='center')
)

def csv_to_excel(csv_path, excel_path):
    """將CSV文件轉(zhuǎn)換為Excel文件"""
    start_time = time.time()
    
    # 讀取CSV數(shù)據(jù)
    with open(csv_path, 'r', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)
        header = next(reader)
        data = list(reader)
    
    # 創(chuàng)建Excel工作簿
    wb = Workbook()
    ws = wb.new_sheet("Sheet1")
    
    # 寫入數(shù)據(jù)并應(yīng)用樣式
    for row_idx, row_data in enumerate([header] + data, start=1):
        for col_idx, value in enumerate(row_data, start=1):
            ws.set_cell_value(row_idx, col_idx, value)
            ws.set_cell_style(row_idx, col_idx, 
                             header_style if row_idx == 1 else content_style)
    
    # 保存Excel文件
    os.makedirs(os.path.dirname(excel_path), exist_ok=True)
    wb.save(excel_path)
    
    print(f"轉(zhuǎn)換完成,耗時:{time.time() - start_time:.2f}秒")
    print(f"文件已保存至:{os.path.abspath(excel_path)}")
   
def batch_convert(csv_folder, output_folder):
    """批量轉(zhuǎn)換文件夾中的所有CSV文件"""
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    for filename in os.listdir(csv_folder):
        if filename.endswith('.csv'):
            csv_path = os.path.join(csv_folder, filename)
            excel_name = os.path.splitext(filename)[0] + '.xlsx'
            excel_path = os.path.join(output_folder, excel_name)
            
            print(f"正在處理: {filename}")
            csv_to_excel(csv_path, excel_path)
 
if __name__ == "__main__":
    # 單文件轉(zhuǎn)換
    csv_to_excel('input.csv', 'output/output.xlsx')
    
    # 批量轉(zhuǎn)換
    batch_convert('csv_files', 'excel_outputs')

七、小結(jié)

通過這種方法,我們可以:

  • 高效處理數(shù)十萬行的大型CSV文件
  • 保持?jǐn)?shù)據(jù)的原始格式
  • 應(yīng)用專業(yè)的Excel樣式
  • 輕松實現(xiàn)批量轉(zhuǎn)換

對于需要處理更大數(shù)據(jù)量的場景,還可以考慮分塊讀取CSV文件或使用多線程處理。

到此這篇關(guān)于Python實現(xiàn)批量CSV轉(zhuǎn)Excel的高性能處理方案的文章就介紹到這了,更多相關(guān)Python批量CSV轉(zhuǎn)Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pytorch上下采樣函數(shù)之F.interpolate數(shù)組采樣操作詳解

    Pytorch上下采樣函數(shù)之F.interpolate數(shù)組采樣操作詳解

    最近用到了上采樣下采樣操作,pytorch中使用interpolate可以很輕松的完成,下面這篇文章主要給大家介紹了關(guān)于Pytorch上下采樣函數(shù)之F.interpolate數(shù)組采樣操作的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python中super()函數(shù)簡介及用法分享

    Python中super()函數(shù)簡介及用法分享

    本文給大家分享的是Python中的super函數(shù)的簡單介紹以及用法和注意事項,有需要的小伙伴可以參考下
    2016-07-07
  • Python實現(xiàn)簡單音頻數(shù)據(jù)壓縮與解壓算法

    Python實現(xiàn)簡單音頻數(shù)據(jù)壓縮與解壓算法

    在數(shù)字信號處理中,壓縮技術(shù)被廣泛應(yīng)用于減少文件大小或傳輸帶寬,對于音頻數(shù)據(jù)而言,通常會使用復(fù)雜的壓縮算法如MP3、AAC等,但這些算法往往需要專門的庫和對底層原理的理解,在這篇博客中,我們將探索一種簡單的自定義壓縮方法,并用Python實現(xiàn)它,需要的朋友可以參考下
    2025-06-06
  • 利用anaconda作為python的依賴庫管理方法

    利用anaconda作為python的依賴庫管理方法

    今天小編就為大家分享一篇利用anaconda作為python的依賴庫管理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息詳解

    Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息詳解

    這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息,涉及Python3針對mysql數(shù)據(jù)庫的連接、信息存儲等相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python操作sqlite3快速、安全插入數(shù)據(jù)(防注入)的實例

    Python操作sqlite3快速、安全插入數(shù)據(jù)(防注入)的實例

    這篇文章主要介紹了Python操作sqlite3快速、安全插入數(shù)據(jù)(防注入)的實例,通過在一個表格中進(jìn)行操作來論述如何使用Python快速安全地操作sqlite3,需要的朋友可以參考下
    2014-04-04
  • 淺析Python如何在Word文檔中插入數(shù)學(xué)公式

    淺析Python如何在Word文檔中插入數(shù)學(xué)公式

    將數(shù)學(xué)公式直接嵌入文檔中,不僅能夠提升文檔的專業(yè)水準(zhǔn),還能實現(xiàn)公式的自動更新和動態(tài)計算,從而有效提升工作效率和內(nèi)容的準(zhǔn)確性,下面我們就來看看如何使用 Python 在 Word 文檔中插入數(shù)學(xué)公式
    2025-06-06
  • OpenCV+python實現(xiàn)實時目標(biāo)檢測功能

    OpenCV+python實現(xiàn)實時目標(biāo)檢測功能

    這篇文章主要介紹了OpenCV+python實現(xiàn)實時目標(biāo)檢測功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python?ArcPy批量掩膜、重采樣大量遙感影像的操作

    Python?ArcPy批量掩膜、重采樣大量遙感影像的操作

    這篇文章主要介紹了Python?ArcPy批量掩膜、重采樣大量遙感影像,本文介紹基于Python中ArcPy模塊,對大量柵格遙感影像文件進(jìn)行批量掩膜與批量重采樣的操作,需要的朋友可以參考下
    2023-03-03
  • pyqt6的本地環(huán)境部署(conda和vscode環(huán)境)

    pyqt6的本地環(huán)境部署(conda和vscode環(huán)境)

    本文主要介紹了pyqt6的本地環(huán)境部署(conda和vscode環(huán)境),文中通過示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05

最新評論