[英]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
文件,您將需要使用xlrd
和xlwt
類的東西。 以下腳本將幫助您入門:
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.