Страницы: 1
RSS
Перенести данные из документа Word состоящий из надписей в таблицу Excel
 
Здравствуйте, есть несколько файлов сформированные  программой в Word. (почему не в Excel не спрашивайте). Вот такая данность. Нужно преобразовать это все в таблицу с похожей структурой но в Excel с 4 столбцами. Есть ли способ?
Изменено: sfs - 20.01.2020 18:17:03
 
Доброе время суток
Цитата
sfs написал:
Есть ли способ?
Есть - написать макрос. У вас фактически все данные упакованы во фрэймы ThisDocument.Frames.Count = 1106
 
Да, для меня это сложновато. Делаю вручную переношу сведения копированием в эксель, получается 1 столбец, а потом копирую на 4 столбца, фильтрую и удаляю данные в них тестовым фильтром, в некоторых столбца пустые ячейки заполняю данными вниз, потом по отдельному столбцу фильтрую пустые ячейки и удаляю эти строки целиком. В общем муть минут 10 на каждый файл. Жаль что нет решения стандартными инструментами Офиса.
 
Цитата
sfs написал:
Жаль что нет решения стандартными инструментами Офиса.
Ну, думаю, что это естественно, что для не стандартных структур, которые не являются таблицами, нет таких инструментов.
 
Выделите, скопируйте, вставьте в Excel.
Но проблема, думаю, не в этом, а в том, что сформированы файлы в Word - некорректно с точки зрения Excel. Поэтому в Excel они вставляются неправильно (Например: то, что должно быть названием группы понятий и вставляться НАД группой, вставляется ВНУТРЬ группы).
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
sfs, в принципе можно сохранить файл в pdf и в Power Bi обработать. затем скопировать в Excel
не айс конешно, но от части ручной работы избавило бы
второй шаг можно закомментировать.
Код
let
    Источник = Pdf.Tables(File.Contents("C:\abc\2018_1\2018_1.pdf")),
    #"второй шаг" = Table.SelectRows(Источник, each  Text.Contains([Name], "(Page")),
    #"Добавлен пользовательский объект1" = Table.AddColumn(#"второй шаг", "Count", each Record.FieldCount([Data]{0})),
    Условн = Table.AddColumn(#"Добавлен пользовательский объект1", "a", each if [Count] = 4 then  Table.RenameColumns(Table.CombineColumns([Data],{"Column2", "Column3"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Column2"),{{"Column4", "Column3"}}) else if [Count] = 5 then  Table.RenameColumns(Table.CombineColumns([Data],{"Column2", "Column3"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Column2"),{{"Column5", "Column3"}}) else if [Count] > 5 then Table.RenameColumns(Table.AddColumn([Data], "Column", each Text.Combine(Record.FieldValues(_)," "))[[Column]],{{"Column", "Column1"}}) else [Data])[[a]],
    #"Развернутый элемент a" = Table.ExpandTableColumn(Условн, "a", {"Column1", "Column2", "Column3"})
in
    #"Развернутый элемент a"
Страницы: 1
Наверх