Python: как прочитать несколько электронных таблиц в новом формате в CSV?

Я (новичок) пытаюсь прочитать из документа excel несколько таблиц и прочитать в новом формате в одном csv. В csv мне нужны следующие поля: год (из глобальной переменной), месяц (из глобальной переменной), выход (имя таблицы); rowvalue [a] (строка для объяснения строки), columnvalue [1] (строка для объяснения cloumn), значение ячейки (с плавающей запятой)

Затем в них должны быть введены соответствующие значения.

Из соответствующих таблиц необходимо прочитать только RowNum от 6 до 89.

#BWA-Reader
#read the excel spreadsheet with all sheets
#Python 3.6

Importe
import openpyxl
import xlrd
from PIL import Image as PILImage
import csv

# year value of the Business analysis
year = "2018"

# month value of the Business analysis
month = "11"

# .xlxs path
wb = openpyxl.load_workbook("BWA Zusammenfassung 18-11.xlsx")
print("Found your Spreadsheet")
# List of sheets
sheets = wb.get_sheet_names()

# remove unneccessary sheets
list_to_remove = ("P",'APn','AP')
sheets_clean = list(set(sheets).difference(set(list_to_remove)))
print("sheets to load: " + str(sheets_clean))

# for loop for every sheet based on sheets_clean
for sheet in sheets_clean:

# for loop to build list for row and cell value
    all_rows = []
    for row in wb[sheet].rows:
        current_row = []
        for cell in row:
            current_row.append (cell.value)
        all_rows.append(current_row)
        print(all_rows)
# i´m stucked -.-´

Я ожидаю вывод, как:

2018;11;Oldenburg;total_sales;monthly;145840.00

все листы в одном csv

Большое спасибо за каждую идею, как решить мой проект!


person Dominik Keller    schedule 02.01.2019    source источник
comment
Какой результат он генерирует в настоящее время?   -  person jorijnsmit    schedule 03.01.2019
comment
Эй, я получаю список каждой строки из каждой таблицы. вот где я застрял. я не нахожу правильного ответа для преобразования значений сотен списков в нужный мне формат csv: [142, 'Fremdmieten', 165, None, 0.1, 0, 0, 0, None, 0, 1448.7, None, 0.07 , 0,03388769028363356, 0, 0, 0, Нет, 0, Нет, 165, Нет, 0,01]   -  person Dominik Keller    schedule 03.01.2019
comment
Значения означают: id,id_name,monthly_values,пусто,percentage_monthly_values,monthly_budget,perecentage_monthly_budget,пусто,accumated_value,пусто,percentage_accounted_value,benchmark,cumcumed_budget_value,percentage_accumeded_budget,accumed_lastyear_value,empty,percentage_accumated_lastyear_total_value,empty,percentage_lastyear_total_value,empty,percentage_lastyear_total_value   -  person Dominik Keller    schedule 03.01.2019
comment
Используйте модуль csv и напишите строку, когда вы читаете строку из файла Excel.   -  person Charlie Clark    schedule 03.01.2019
comment
Эй, Чарли, может, я веду себя глупо, но не мог бы ты подсказать мне код? Это решило бы одну из моих проблем на пути к решению   -  person Dominik Keller    schedule 03.01.2019


Ответы (1)


Полный ответ на этот вопрос очень зависит от фактического набора данных.

Я бы рекомендовал изучить функцию pandas read_excel(). Это значительно упростит извлечение необходимых строк/столбцов/ячеек без перебора всех листов.

Вам могут понадобиться некоторые учебники по пандам, чтобы добраться туда, но, судя по тому, что вы пытаетесь сделать, панды могут быть полезным навыком в будущем!

person jorijnsmit    schedule 04.01.2019