Как извлечь таблицу word в excel с помощью Python?
Я новичок в Python. Я попытался написать код для извлечения деталей из ячейки таблицы конкретного слова и экспорта в Excel. Тем не менее, я, кажется, не могу извлечь правильные детали из таблицы word в лист excel. Я могу извлечь детали из строки 1-3, но не для других строк
Ниже приводится таблица слов:
https://i.stack.imgur.com/0rQZS.png[^]
Что я уже пробовал:
import os import xlsxwriter import xlwt import docx from docx import Document #read single file doc = Document ('/Users/TP/approach/data/sample.docx') #read multiple files path = "/Users/TP/approach/data/" files = os . listdir ( path ) docx_list = [ ] for f in files : if os . path . splitext ( f ) [ 1 ] == '.docx' : docx_list . append ( path + '//' + f ) else : pass #read form tb = doc.tables #read line rows = tb[0].rows #read column cols = rows[0].cells #read cell cell = cols [ 0 ] text = cell . text ` mat = [ ] for a in range ( len ( docx_list ) ) : doc = Document ( docx_list [ a ] ) tb = doc . tables [ 0 ] row = [] #From row 1-3, the code is following. # Get the 2nd row of data for i in range ( 1 , 7 , 6 ) : cell = tb . cell ( 1 , i ) txt = cell . text if cell . text != '' else '' # No content with spaces row . append ( txt ) #From row 5-9, the code is following # Get the 5th row of data for l in range ( 1 , 7 , 6 ) : cell = tb . cell ( 4 , l ) txt = cell . text if cell . text != '' else '' # No content with spaces row . append ( txt ) # Get the 6th row of data for m in ( 1, 7 , 6 ) : cell = tb . cell ( 5 , m ) txt = cell . text if cell . text != '' else '' # No content with spaces row . append ( txt ) # Get the 7th row of data for n in range ( 2 , 7 , 1) : cell = tb . cell ( 6 , n ) txt = cell . text if cell . text != '' else '' # No content with spaces row . append ( txt ) # Get the 8th row of data for o in range ( 3 , 7, 1) : cell = tb . cell ( 7 , o ) txt = cell . text if cell . text != '' else '' # No content with spaces row . append ( txt ) #Create workbook workbook = xlsxwriter.Workbook('/Users/TP/missed_approach/output/missed approach_output_7.xlsx') #add sheet xlsheet = workbook.add_worksheet('data') #add header table_head = [' date ', 'time','aircraft_call_sign','runway_in_use','aircraft_type','persons_on_board','name_of_airline','point_of_depature','aircraft_registration','destination','reason'] headlen = len(table_head) for i in range(headlen): xlsheet.write(0,i,table_head[i]) for i in range(len(mat)): for j in range(len(row)): xlsheet.write(i+1,j,mat[i][j]) workbook.close()
Richard MacCutchan
Я вижу, что вы обновили свой вопрос, но все еще не объяснили, в чем заключается проблема. Почему вы используете операторы диапазона для извлечения отдельных элементов данных? Например у вас есть три блока начала
for i in range ( 1 , 7 , 6 )
которые можно было бы объединить в одно целое.