Когда содержимое Word выглядит так, мой код работает нормально.
< ol>
[*]Первый абзац – это текст со стилем заголовка 1, начинающийся с '['
[*]Второй абзац – "обычный" текст
< li>Таблица с несколькими полями текста
Когда содержимое Word выглядит так, мой код не работает должным образом. Код помещает второй, третий и четвертый абзацы не в то место.
- Первый абзац представляет собой текст со стилем заголовка 1, который начинается с '[' >
- Второй абзац — «обычный» текст.
- Третий абзац — «обычный» текст.
- Четвертый абзац — «обычный». text
- Таблица с несколькими полями текста
- Первый абзац представляет собой текст со стилем заголовка 1, который начинается с '[' и записывается в мой список заголовков
Объедините эти абзацы в один фрагмент текста
2) Второй абзац это «обычный» текст
3) Третий абзац — «обычный» текст
4) Четвертый абзац — «обычный» текст - Таблица с несколькими полями текста для записи мой список строковых данных работает отлично
Код: Выделить всё
#######################################################################################################
# Define the function that will read in the headings from the Word document
def iter_headings(paragraphs):
for paragraph in paragraphs:
if paragraph.style.name.startswith('Heading') and paragraph.text.startswith('['):
Req_Name.append(paragraph.text)
return Req_Name
#######################################################################################################
# Define the function that will read in the paragraph text from the Word document
def iter_text(paragraphs):
for paragraph in paragraphs:
if paragraph.style.name.startswith('Normal') and paragraph.text:
Req_Text.append(paragraph.text)
return Req_Text
#######################################################################################################
for paragraph in iter_headings(doc.paragraphs):
Req_Name
Req_Name=pd.DataFrame(Req_Name)
Req_Name.to_excel('req_name.xlsx')
# # Read in the requirement text
for paragraph in iter_text(doc.paragraphs):
Req_Text
Req_Name=pd.DataFrame(Req_Name)
# Read in the tabular data from word
for i in range(0, tableCount):
table = doc.tables[i]
if table.cell(0, 0).text != 'Rationale': continue
print('i = ', i)
reqCount=reqCount+1
# Extract cell contents
Rationale = table.cell(0, 1).text
Crit_Cat = table.cell(1, 1).text
Defining = table.cell(2, 1).text
Complying = table.cell(3, 1).text
Conflicting = table.cell(4, 1).text
Valid_Strat = table.cell(5, 1).text
Valid_Result = table.cell(6, 1).text
Valid_Status = table.cell(7, 1).text
Verify_Strat = table.cell(8, 1).text
Verify_Result = table.cell(9, 1).text
Verify_Status = table.cell(10, 1).text
lineData=(Rationale, Crit_Cat, Defining, Complying, Conflicting, Valid_Strat,
Valid_Result, Valid_Status, Verify_Strat, Verify_Strat, Verify_Result, Verify_Status)
Как далеко я от базы и есть ли более простой способ??
Подробнее здесь: https://stackoverflow.com/questions/787 ... and-a-tabl