У меня есть несколько таблиц в Word, которые я хочу прочитать. Я попробовал описанный здесь подход для очистки таблицы документов Word с использованием docx2 python: http://theautomatic.net/2019/10/14/how-to-read-word-documents-with-python/, и он хорошо работает с приведенным примером. Но если я добавлю вторую строку к заголовку таблицы или одному из полей данных, я потеряю вторую строку информации в кадре данных.
В моем примере 2 таблицы Word, и здесь он отображается . (Я не мог понять, как прикрепить фактический файл MSWord, который существует на моем c: диске)
Мой код:
for i in range( 0 , len(doc_result.body)):
print('when i=', i, 'doc_result: ','\n', doc_result.body[i],'\n')
bodydf1=pd.DataFrame(doc_result.body[i][0:])
#bodydf1.columns = [val[0] for val in doc_result.body[i][0]]
print('After df command: i=',i,'\n',bodydf1, '\n')
readval=lambda val: val[0] #this is code as written in article
bodydf2= bodydf1.applymap(readval)
print('with lambda val[0]: ','\n',bodydf2, '\n')
readval1=lambda val: val[0:] #this is my code to try to read all lines in the table cell
bodydf3= bodydf1.applymap(readval1)
print('with lambda val[0:]: ','\n',bodydf3, '\n')
Когда обрабатывается первая таблица, Я получаю результат , аналогичный примеру в статье, если использовать val [0]. Когда 2-я таблица обрабатывается, она «теряет» 2-ю строку текста, т.е. «Вторая строка поля 1», «Вторая строка поля 2», «Вторая строка поля информации 1», как показано здесь .
Я попытался добавить оператор readval1 с val [0:], думая, что нужно прочитать всю ячейку, но он не показывает 2-ю строку и создает результат в виде списка.
Как мне захватить все строки в любой данной ячейке и захватить их в результате кадра данных?