簡體   English   中英

如何使用 python 將 excel 的一列中的數據拆分為多列

[英]How to Split data in one column of excel into multiple column using python

任何人都可以在我的程序中幫助我嗎? 我已經使用XLSXwriter庫將一些數據從TXT文件復制到XLSX ,並將這些數據復制到 1 列中。 現在我想使用空格作為分隔符將該數據拆分為多列。 下面是我的程序。 現在請建議我前進的任何道路。

with open('filter_pre.txt', 'wt+') as logs_pre:
    logs_pre.write(filter_pre)

with open('filter_pre.txt', 'rt+') as Pre_logs:
    lines = Pre_logs.readlines()
    for line in lines:
        Pre_filter_logs.write(row, col, line.strip())
        row += 1
        if not line:
            break
    filter_logs.close()

為我無法評論寫一個答案;

我認為您應該在寫入 XLSX 之前拆分數據。 這要容易得多。 Office 套件因難以在代碼中交互而臭名昭著。

with open("inputs.txt") as f:
    rowcount = 0
    for row in f.readlines():
        row = row.strip() # Clean up each row
        # Reset the column counter for each row. 
        # Remove the line below and see what happens ;) 
        columcount = 0 
        for column in row.split(" "): # Break up a row on each space.
            excelsheet.write(rowcount, columcount, column)
            columcount +=1 
        rowcount += 1

您可以在代碼中的某處將額外的 function (addRow) 添加到工作表 object 中。

def addRowToXls(self, data, row = 0):
    for colNum, value in enumerate(data):
            self.write(row, colNum, value)

因此,您可以輕松地將行(無論其中有多少列)添加到工作表中,例如:

worksheet.addRow(data = ["Column 1 text", "Column 2 text", "And so on..."], row = 3) # add to row 4

所以在你的情況下,我猜整個代碼都是這樣的

import xlsxwriter


def addRowToXls(self, data, row = 0):
    for colNum, value in enumerate(data):
            self.write(row, colNum, value)

xlsxwriter.worksheet.Worksheet.addRow = addRowToXls

workbook = xlsxwriter.Workbook("new_file.xlsx") # new xlsx file
worksheet = workbook.add_worksheet()
worksheet.addRow(data = ["column 1 header text", "column 2 header text", "and so on..."]) # you can skip this
row_save = 1 # start from 0, if you skip column headers

with open('filter_pre.txt', 'rt+') as Pre_logs: # text file to read from
    lines = Pre_logs.readlines()
    for line in lines:
        worksheet.addRow(data = line.split(" "), row = row_save)  # used space as seperator
        row_save += 1

workbook.close()

經測試。 按預期工作。

暫無
暫無

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

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