Как импортировать данные из файла .txt в указанный лист c excel с Python? - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь автоматизировать процесс, который в основном считывает значения из текстовых файлов в определенные ячейки Excel. У меня есть шаблон в Excel, который будет читать данные с различных листов под определенными именами. Например, шаблон будет считывать данные из «Видео баллов». Видео баллы - это текстовый файл, который я копирую и вставляю в Excel. В каждом проекте используется 5 различных текстовых файлов, поэтому он становится утомительным через некоторое время и когда нужно завершить много проектов.

Как я могу импортировать или копировать и вставлять эти файлы .txt в Excel на указанный лист? Я использовал openpyxl для других частей этого проекта, но я открыт для использования другой библиотеки, если это невозможно сделать с openpxl.

Я также пытался открыть и прочитать файл, но я не мог понять, как сделать то, что я хочу с этим либо Я нашел список всех файлов, которые мне нужны, это просто вопрос получения их в Excel.

Заранее спасибо всем, кто помогает.

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Pandas сработает!

Подход: Есть лист, содержащий путь к вашим файлам, разделитель, соответствующие имена целевых листов

Теперь прочитайте этот лист Excel, используя pandas, итерируйте по каждой строке для каждого файла с подробностями, прочитайте данные, запишите их в новый лист Excel той же книги.

import pandas as pd

file_details_path = r"/Users/path for xl sheet/file details/File2XlDetails.xlsx"
target_sheet_path = r"/Users/path to target xl sheet/File samples/FiletoXl.xlsx"

# create a writer to save the file content in excel
writer = pd.ExcelWriter(target_sheet_path, engine='xlsxwriter')


file_details = pd.read_excel(file_details_path,
                             dtype = str,
                             index_col = False
                             )


def write_to_excel(file, trg_sheet_name):
    # writes it to excel
    file.to_excel(writer,
                  sheet_name = trg_sheet_name,
                  index = False,
                  )

# loop through each file record
for index, file_dtl in file_details.iterrows():

    # you can print and check the row content for reference
    print(file_dtl['File_path'])
    print(file_dtl['Separator'])
    print(file_dtl['Target_sheet_name'])

    # reads file
    file = pd.read_csv(file_dtl['File_path'],
                       sep = file_dtl['Separator'],
                       dtype = str,
                       index_col = False,
                       )
    write_to_excel(file, file_dtl['Target_sheet_name'])

writer.save()

Надеюсь, это поможет! Дайте мне знать, если у вас возникнут какие-либо проблемы ...

0 голосов
/ 18 марта 2020

Сначала импортируйте файл TXT в список в python, я полагаю, что файл TXT выглядит следующим образом

1

2

3

4

....

with open(path_txt, "r") as e:
    list1 = [i for i in e]

затем мы вставляем значения списка в нужный вам лист

from openpyxl import load_workbook

wb = load_workbook(path_xlsx)
ws = wb[sheet_name]
ws["A1"] = "values" #just a header
row = 2 #represent the 2 row of the sheet
column = 1 #represent the column "A" of the sheet

for i in list1:
    ws.cell(row=row, column=column).value = i #getting the current cell, and writing the value of the list
    row += 1 #just setting the current to the next

wb.save(path_xlsx)

Надеюсь, это сработает для вас.

...