最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python全自動(dòng)實(shí)現(xiàn)Excel數(shù)據(jù)分列

 更新時(shí)間:2026年04月13日 08:39:19   作者:Eiceblue  
在 Excel 數(shù)據(jù)處理中,數(shù)據(jù)分列是高頻剛需操作,本文將使用免費(fèi) Excel 處理庫,通過 Python 實(shí)現(xiàn)全自動(dòng)單列拆分多列,并對比 Excel 自帶分列與 VBA 方案,幫你快速選出最合適的處理方式

在 Excel 數(shù)據(jù)處理中,數(shù)據(jù)分列是高頻剛需操作 — 把單列里用逗號、空格、豎線等分隔符拼接的文本,拆成多列獨(dú)立字段。

手動(dòng)用 Excel 分列效率低,大批量數(shù)據(jù)還容易出錯(cuò);用 VBA 又受平臺限制。本文用免費(fèi) Excel 處理庫,通過 Python 實(shí)現(xiàn)全自動(dòng)單列拆分多列,并對比 Excel 自帶分列與 VBA 方案,幫你快速選出最合適的處理方式。

一、先看傳統(tǒng)方案:Excel 自帶分列與 VBA

在使用 Python 之前,先簡單對比兩種 Excel 原生方法,方便你根據(jù)場景選擇。

1. Excel “分列” 向?qū)?/h3>
  • 操作步驟:選中目標(biāo)列 →「數(shù)據(jù)」→「分列」→ 按分隔符或固定寬度拆分。
  • 優(yōu)點(diǎn):無需代碼,上手簡單,直觀易用
  • 缺點(diǎn):純手動(dòng)操作,數(shù)據(jù)更新后必須重復(fù)執(zhí)行,無法自動(dòng)化批量處理

 Excel “分列” 向?qū)? height=

2. VBA 宏代碼

通過 VBA 調(diào)用 Split 函數(shù)實(shí)現(xiàn)自動(dòng)拆分,示例代碼:

Sub SplitColumn()
    Dim rng As Range, cell As Range
    Dim splitArr() As String
    Dim i As Integer
    ' 指定處理 A 列所有有數(shù)據(jù)的行
    Set rng = Range("A1", Range("A" & Rows.Count).End(xlUp))
    For Each cell In rng
        ' 按逗號分割
        splitArr = Split(cell.Value, ",")
        ' 寫入右側(cè)對應(yīng)列
        For i = LBound(splitArr) To UBound(splitArr)
            cell.Offset(0, i + 1).Value = Trim(splitArr(i))
        Next i
    Next cell
    ' 自動(dòng)適配列寬
    Columns("B:" & Chr(64 + UBound(splitArr) + 2)).AutoFit
End Sub
  • 優(yōu)點(diǎn):可自動(dòng)化執(zhí)行,處理速度快,與 Excel 高度集成
  • 缺點(diǎn):依賴 Windows + Excel 環(huán)境,跨平臺無法使用,有一定學(xué)習(xí)成本

VBA 宏代碼

兩種方案更適合臨時(shí)處理或純 Excel 環(huán)境。如果需要跨平臺、無 Excel 依賴、批量自動(dòng)化,推薦使用下面的 Free Spire.XLS for Python 方案。

二、Python 將 Excel 中的單列數(shù)據(jù)拆分為多列

1. 安裝依賴庫

在終端或命令提示符中執(zhí)行以下命令,安裝免費(fèi)的 Excel 處理庫 Free Spire.XLS for Python:

pip install Spire.Xls.Free

該庫不依賴 Excel 應(yīng)用程序,使用時(shí)注意查看限制。

2. 基礎(chǔ)分列代碼

以下代碼實(shí)現(xiàn):讀取 Excel 文件 → 將第一列按逗號拆分 → 拆分結(jié)果寫入右側(cè)列 → 保存新文件。

from spire.xls import *

# 1. 加載 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("數(shù)據(jù).xlsx")

# 2. 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]

# 3. 遍歷所有有效數(shù)據(jù)行
for i in range(sheet.LastRow):
    # 讀取第 1 列內(nèi)容
    cell_text = sheet.Range[i + 1, 1].Text
    
    # 按逗號拆分(可改為空格、分號、豎線等)
    split_parts = cell_text.split(',')
    
    # 從第 2 列開始寫入拆分后的數(shù)據(jù)
    for j, value in enumerate(split_parts):
        sheet.Range[i + 1, j + 2].Text = value.strip()

# 4. 保存結(jié)果文件
workbook.SaveToFile("數(shù)據(jù)分列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

3. 代碼詳解

  • sheet.LastRow:自動(dòng)獲取最后非空行,無需手動(dòng)指定范圍。
  • split(separator):按分隔符拆分字符串。
  • strip():去除每個(gè)子項(xiàng)的前后空格,保證數(shù)據(jù)干凈。
  • sheet.Range[row+1, col+2].Text:從第 2 列(索引 2)開始寫入,保留原第 1 列數(shù)據(jù)。
  • Dispose():釋放資源,防止內(nèi)存泄漏。

運(yùn)行效果:執(zhí)行后生成 數(shù)據(jù)分列.xlsx,原 A 列保留,拆分后的數(shù)據(jù)依次填入 B、C、D… 列。

代碼詳解

三、進(jìn)階用法:動(dòng)態(tài)分隔符(正則表達(dá)式)

實(shí)際數(shù)據(jù)中可能混雜逗號、分號、空格等多種分隔符(例如 “蘋果, 香蕉; 橙子 葡萄”)。此時(shí)可使用正則表達(dá)式統(tǒng)一拆分。

import re
from spire.xls import *

workbook = Workbook()
workbook.LoadFromFile("Data.xlsx")
sheet = workbook.Worksheets[0]

for i in range(sheet.LastRow):
    original_text = sheet.Range[i + 1, 1].Text
    # 按逗號、分號、空格拆分,支持連續(xù)分隔符
    parts = re.split(r'[,; ]+', original_text.strip())
    
    # 寫入拆分結(jié)果
    for j, val in enumerate(parts):
        sheet.Range[i + 1, j + 2].Text = val

sheet.AllocatedRange.AutoFitColumns()
workbook.SaveToFile("MultiSeparatorSplit.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

提示:可根據(jù)需要修改正則表達(dá)式,例如添加 \|(豎線)、\t(制表符)等。

四、方案選擇建議

  • 臨時(shí)/少量數(shù)據(jù):直接用 Excel 自帶分列向?qū)?,快速完?/li>
  • 重復(fù)執(zhí)行、僅 Windows 環(huán)境:使用 VBA 宏,與 Excel 無縫配合
  • 批量自動(dòng)化、跨平臺、無 Excel 依賴:選用 Free Spire.XLS for Python,代碼簡潔、樣式保留、穩(wěn)定性強(qiáng)

到此這篇關(guān)于Python全自動(dòng)實(shí)現(xiàn)Excel數(shù)據(jù)分列的文章就介紹到這了,更多相關(guān)Python Excel數(shù)據(jù)分列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 身份證OCR識別API接入實(shí)例詳解(Python?/?Java?示例)

    身份證OCR識別API接入實(shí)例詳解(Python?/?Java?示例)

    OCR技術(shù)是一種通過掃描、拍照等光學(xué)輸入方式將各種印刷品上的文字轉(zhuǎn)化為圖像信息,再利用文字識別技術(shù)將圖像信息轉(zhuǎn)化為可使用的計(jì)算機(jī)輸入技術(shù)的過程,這篇文章主要介紹了身份證OCR識別API接入的相關(guān)資料,文中以Python/Java為例,需要的朋友可以參考下
    2026-04-04
  • 火車票搶票python代碼公開揭秘!

    火車票搶票python代碼公開揭秘!

    火車票搶票python代碼公開揭秘!使用Python模擬搶票程序,給大家揭秘?fù)屍钡降资窃趺椿厥?,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Keras—embedding嵌入層的用法詳解

    Keras—embedding嵌入層的用法詳解

    這篇文章主要介紹了Keras—embedding嵌入層的用法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python開發(fā)文字版密室逃脫游戲的實(shí)例(含代碼)

    Python開發(fā)文字版密室逃脫游戲的實(shí)例(含代碼)

    密室逃脫游戲是一種頗受歡迎的解謎類游戲,玩家通常需要通過觀察、推理、合作等方式解決一系列難題,以逃脫困境,在這篇博文中,我們將使用Python開發(fā)一個(gè)文字版密室逃脫游戲,旨在通過簡單的文本交互來呈現(xiàn)游戲的趣味性與挑戰(zhàn)性
    2025-04-04
  • pandas交換行的具體實(shí)現(xiàn)

    pandas交換行的具體實(shí)現(xiàn)

    Pandas?是專注于表格數(shù)據(jù)處理的?Python?第三方庫,能幫助我們完成各種各樣的表格數(shù)據(jù)操作,本文主要介紹了pandas交換行的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 解決Python傳遞中文參數(shù)的問題

    解決Python傳遞中文參數(shù)的問題

    這篇文章主要介紹了解決Python傳遞中文參數(shù)的問題的相關(guān)資料,需要的朋友可以參考下
    2015-08-08
  • pyspark自定義UDAF函數(shù)調(diào)用報(bào)錯(cuò)問題解決

    pyspark自定義UDAF函數(shù)調(diào)用報(bào)錯(cuò)問題解決

    這篇文章主要為大家介紹了pyspark自定義UDAF函數(shù)調(diào)用報(bào)錯(cuò)問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python中的shape[0]、shape[1]和shape[-1]使用方法

    Python中的shape[0]、shape[1]和shape[-1]使用方法

    shape函數(shù)是Numpy中的函數(shù),它的功能是讀取矩陣的長度,比如shape[0]就是讀取矩陣第一維度的長度,這篇文章主要介紹了Python中的shape[0]、shape[1]和shape[-1]使用方法,需要的朋友可以參考下
    2023-07-07
  • 教你在pycharm中使用tensorflow的方法

    教你在pycharm中使用tensorflow的方法

    當(dāng)前使用的是anaconda的3.8版本,無法正常下載tensorflow包,需要構(gòu)建虛擬環(huán)境使用3.7及以下的解釋器才可以,如何解決這個(gè)問題呢,下面小編給大家?guī)砹巳绾卧趐ycharm中使用tensorflow,感興趣的朋友參考下吧
    2021-11-11
  • Python實(shí)現(xiàn)將內(nèi)容寫入文件的五種方法總結(jié)

    Python實(shí)現(xiàn)將內(nèi)容寫入文件的五種方法總結(jié)

    本篇帶你詳細(xì)看一下python將內(nèi)容寫入文件的方法以及細(xì)節(jié),主要包括write()方法、writelines()?方法、print()?函數(shù)、使用?csv?模塊、使用?json?模塊,需要的可以參考一下
    2023-04-04

最新評論

肇源县| 定西市| 深泽县| 岚皋县| 海阳市| 余庆县| 蒲江县| 水城县| 那坡县| 罗城| 乐安县| 博爱县| 平昌县| 平江县| 资溪县| 桐城市| 耿马| 华池县| 咸宁市| 榆社县| 简阳市| 桐乡市| 克拉玛依市| 兴和县| 汉阴县| 闵行区| 那曲县| 龙井市| 锦屏县| 漠河县| 汨罗市| 大城县| 宜城市| 甘泉县| 华容县| 石泉县| 芮城县| 浮梁县| 宣汉县| 若羌县| 孙吴县|