Мне было поручено использовать пользовательские отчеты SAP, которые предоставляются мне в текстовом файле - образец ниже (убрал имена и сделал все значения 0,00 для этого образца).Задача состоит в том, чтобы использовать эти данные и создавать файлы xlsx из этих данных.У меня есть 100 из этих текстовых файлов в определенной папке.Как бы я загрузить это в Python и создать файл xlsx, который сохраняет данные заголовка в том же месте / формате над таблицей для каждого файла?
У меня есть код ниже, который создает xlsx для каждого файла, но форматвсе перепутано.Мне нужно в лучшем формате для каждой ячейки / столбца / строки.
Любая помощь приветствуется!
Текущий код:
import glob
import os
from xlsxwriter import Workbook
filepath = 'mypath'
txtfiles = glob.glob(os.path.join(filepath, '*z*.txt*'))
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
for filename in txtfiles:
readfiles = open(filename, 'r')
row_list = []
for row in readfiles:
row_list.append(row.split('\n'))
column_list = zip(*row_list)
workbook = Workbook(filename.replace('.txt', '.xlsx'))
worksheet = workbook.add_worksheet('Sheet1')
i = 0
for column in column_list:
for item in range(len(column)):
value = column[item].strip()
if is_number(value):
worksheet.write(item, i, float(value))
else:
worksheet.write(item, i, value)
i += 1
workbook.close()
Пример отчета ниже:
SAMPLE REPORT TEMPLATE
Page Number: 1 of 1 Time of Output:06:37:00
Author of Report:ME Date of Output:09/27/2018
Ledger:SAMPLE Version: 1
Currency: USD Fiscal Year:2018
Report Group:RANDOM Period: 0 to 10
|. | Outside MONEY | Outside MONEY2 | Outside MONEY3 | Subtotal MONIES |
|------------------------------------------------------------|---------------------|---------------------|---------------------|---------------------|
| INCOME MONIES BEFORE CERTAIN CALCULATIONS SAMPLE | 0.00 | 0.00 | 0.00 | 0.00 |
|------------------------------------------------------------|---------------------|---------------------|---------------------|---------------------|
| 1 - Line Data 1 | 0.00 | 0.00 | 0.00 | 0.00 |
| 1 - Line Data 2 | 0.00 | 0.00 | 0.00 | 0.00 |
| 1 - Line Data 3 | 0.00 | 0.00 | 0.00 | 0.00 |
| 1 - Line Data 4 | 0.00 | 0.00 | 0.00 | 0.00 |
| 1 - Line Data 5 | 0.00 | 0.00 | 0.00 | 0.00 |
| 2 - Line Data 1 | 0.00 | 0.00 | 0.00 | 0.00 |
| 2 - Line Data 2 | 0.00 | 0.00 | 0.00 | 0.00 |
| 2 - Line Data 3 | 0.00 | 0.00 | 0.00 | 0.00 |
|* Sample Random Line W/ Star | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 1 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 2 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 3 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 4 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 5 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 6 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 7 | 0.00 | 0.00 | 0.00 | 0.00 |
| 3 - Line Data 8 | 0.00 | 0.00 | 0.00 | 0.00 |