簡體   English   中英

使用Python分割xls檔案

[英]Split xls file with Python

我有一個很大的.xls文件,我想根據第一列將其分為幾個文件。 數據結構有點復雜,這使其非常復雜。

基本上,我需要為每個以“問題”開頭的行創建一個單獨的文件(請參見下文)。 選項的數量是可變的,所以我不能使用塊大小。

有什么辦法可以使用Python做到這一點? 我在stackoverflow上進行了很多搜索,但找不到確切答案。 很感謝任何形式的幫助。

Column A     Column B    Column C
Question 1
Option 1     Info1       Info2
Option 2     Info3
Option 3
Question 2
Option 1
Option 2
Option 3
Option 4
Question 3
Option 1
Option 2
Option 3

為了使Python使用.xls文件,您將需要使用xlrdxlwt類的東西。 以下腳本將幫助您入門:

from itertools import groupby
import xlrd
import xlwt

workbook = xlrd.open_workbook(r"e:\python temp\input.xls")
sheet = workbook.sheet_by_index(0)
rows = [sheet.row_values(row, 0) for row in xrange(sheet.nrows)]

for k, g in groupby(rows, lambda x: x[0].startswith('Question')):
    if k:
        question = next(g)
    else:
        wb = xlwt.Workbook()
        ws = wb.add_sheet('Sheet 1')

        for colx, value in enumerate(question):
            ws.write(0, colx, value)

        for rowx, row in enumerate(g, start=1):
            for colx, value in enumerate(row):
                ws.write(rowx, colx, value)

        wb.save(question[0] + '.xls')

這將打開您的input.xls並讀取其中的所有行。然后使用groupby將其拆分為問題和選項。 然后,根據問題(例如Question 1.xls每對寫入新的輸出Excel文件中。

您可能需要向輸入和輸出文件添加完整路徑。

這兩個庫可以在python-excel網站上找到。

對於您的問題的確切答案將需要一個來創建整個代碼,這不是SO的目標。

不過,我要說的是,使用Python的csv模塊執行此操作似乎並不復雜。 請查看一下,並在進一步懷疑和/或未能達到預期結果的嘗試中編輯您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM