2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
1 | |
Оптимизация и автоматизация работы с большим количеством данных01.08.2012, 23:03. Показов 9795. Ответов 18
Метки нет Все метки)
(
Прошу прощения за краткость в названии темы, но коротко ее не опишешь.
Дело вот в чем. Мой отец - заядлый коллекционер, и у него огромная коллекция конвертов, каталог которой он создал на компьютере. Последний создавался в начале 2000-х годов, когда о компьютере мы почти ничего не знали. Каталог представляет из себя одну огромную таблицу в ворде на 650 страниц, размер файла 8,5 Мб. В таблице 6 столбцов, первый из которых - номер конверта по порядку. Но и тут не всё так просто. Есть подразделы (годы), таблица на их названиях не прерывается. В каждом годе свои номера, кроме того, есть такие номера как 173а, 173б и т.д. Так вот собственно о задаче. Периодически в этой таблице появляется новая строчка, что приводит к необходимости вручную менять все нижеследующие номера в данном подразделе, иногда их сотни. Можно ли как-то автоматизировать процесс? Кроме того, весь этот документ немилосердно тормозит и глючит даже на новом компьютере. Можно ли как-то оптимизировать работу с этой таблицей? Например, перенести ее как-то в эксель? Я думаю, что там было бы проще и номера менять автоматически.
0
|
01.08.2012, 23:03 | |
Ответы с готовыми решениями:
18
Оптимизация отчета с большим количеством формул СУММПРОИЗВ Оптимизация производительности проекта с большим количеством объектов Image Нужны идеи по реализации работы с большим количеством инструкций |
Модератор
![]() ![]() |
|
01.08.2012, 23:30 | 3 |
эта задача не для ворда
как минимум --excel, легче освоить основы еще лучше ------аccess, проще поиск нумерацию можно сделать через 10, легче сделать вставки не знаю сколько строк на листе(от 30-50) 650л=20000-30000 конвертов в excel можно каждый год в отдельную таблицу(лист), чтобы вводя данные за 2005 не лопатить все остальные в access лучше одной таблицей, иметь поле год и неповторяющийся номер(счетчик), вам ведь безразличен номер --вам нужен номер варианта например 2005,писатель толстой, дата выпуска, тираж......12млн,ном 13125 вар 1 то же самое, но авиа 1млн , ном 13125 вар 2 хотя, что я гадаю....у каждого свои тараканы
1
|
2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
02.08.2012, 00:04 [ТС] | 4 |
C аксессом никогда не работал, сначала попробую эксель.
Этой идеи вообще не понял, Вы о чем? Вот это отличная идея, спасибо. Правда, надоест делать 50 листов, конечно ![]() При переносе в эксель сразу же столкнулся с 2 проблемами: 1. Наверное, это я такой тупой, но в одной таблице никак не выделить текст во всю ширину страницы на ограниченную длину: выделяется сразу вся таблица. Приходится выделять отдельно по столбикам и подразделам, а это 6 столбцов примерно в 50 разделах (причем отнюдь не равных по длине), что дает 300 действий копирования и столько же - вставить. Всё же хотелось бы попроще. 2. Разумеется, объем текста в столбцах различается, поэтому в некоторых из них есть пустые строчки, что в экселе превращается в пустые ячейки, которые, в свою очередь, сдвигают весь столбец. Удалять все эти хаотично расположенные ячейки вручную можно неделями.
0
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
02.08.2012, 10:30 | 5 |
Объединенные ячейки?
Известная проблема: знаки перевода строки и абзаца в ячейках Ворда приводят к появлению доп. ячеек в Excel. Решение такое: в Ворде заменить эти символы на уникальный текст (например ^p на @#$, ^l на @#$), скопировать - вставить в Excel, в Ворде сделать отмену, а в Excel заменить @#$ на Ctrl+j. Категорически не согласен! Однородные данные должны храниться в одной таблице. Инече потом будет невозможно сделать выборку по фрагменту названия и т.п.
1
|
2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
02.08.2012, 23:11 [ТС] | 6 |
Возможно, тут Вы правы. Сначала посмотрю, как это будет выглядеть одной таблицей.
В вордовском файле таблица идет без разделения строчек, если Вы об этом. Да, примерно такого совета и ожидал, но проверить на практике не получилось. В ворде замену сделал, в эксель перенес, но тут замена @#$ на Ctrl+j дала полную ерунду, т.е. везде появились Ctrl+j. Наверное, заменять нужно на что-то другое. У меня установлен Office 2010, если это важно. Кстати, заодно поинтересуюсь, нормально ли, что в экселе всё скопировалось в 1-ю ячейку по вертикали? И еще, документ лучше сохранять в новом формате .xlsx?
0
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
03.08.2012, 01:21 | 7 |
Вы вводили Ctrl+j, т.е. 6 символов?!
![]() Ctrl+j означает "удерживая нажатой клавишу Ctrl, нажать клавишу j. При этом в поле ввода ничего не отображается, но символ перевода строки там есть. Можете потренироваться: введите в ячейку молоко и замените о на Ctrl+j. Добавлено через 3 минуты Нет, не нормально. Перед вставкой в Экселе не входите в режим редактирования ячейки, а просто выделите ячейку, с которой начнется таблица (обычно А1). Дело вкуса.
0
|
2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
03.08.2012, 01:40 [ТС] | 8 |
Виноват, к ночи, видимо, совсем всё плохо пошло
![]() Экселем пользовался до сих пор только для примитивных вычислений и графиков, так что с горячими клавишами в нем не знаком. С заменой всё получилось, но осталось как минимум 3 проблемы: 1. Всё-таки всё копируется в 2 вертикальные ячейки: заголовок таблицы и всё остальное. Чесслово, в редактирование ячейки не лез, открыл новый документ и нажал Ctrl+V. Предполагаю, что это связано с тем, что строчки в вордовской таблице не разделены. 2. С последним так же связана еще одна проблема. Я пока провожу эксперименты на более простом документе, где меньше столбцов и в 10 раз меньше страниц, и операции проходят небыстро. Если копировать разом весь тот документ на 650 страниц, есть подозрение, что всё просто намертво повиснет. Разве что выделять по столбцам... 3. Если делать всё одной таблицей, то как настроить автозамену номеров при добавлении строчки только в рамках данного подраздела, причем с учетом номеров типа 117а, 117б и т.п.?
0
|
![]() 770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
03.08.2012, 05:29 | 10 |
shadow_405, Если строк подразумевается не больше 20 тыс, тогда самое простое сделать в Excel и пересчитывать VBA скриптом.
Если строк будет больше, то тут либо по листам разбивать либо будут глюки. Так что в случае количества строк больше 20 тыс, лучше изучайте Access, на нем все у вас будет нормально храниться и работать.
0
|
2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
07.08.2012, 12:24 [ТС] | 12 |
К сожалению, некоторое время был занят, и завтра уеду на несколько дней. Задачи и проблемы я озвучил. Прилагаю фрагмент документа, который надо перенести. Общее количество конвертов, а значит, видимо, и строк - около 12000. Это количество, наверное, будет увеличиваться, но вряд ли превысит 20000, так что эксель подходит с этой точки зрения. Хотелось бы всё же переносить именно в него, поскольку освоить аксесс для меня еще реально, а вот для отца - не уверен. Остаются проблемы, которые я перечислил в предыдущем посте.
0
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
07.08.2012, 14:01 | 13 |
М-да. Мрак. Кто бы мог подумать, что в таблице 6 ячеек (не считая заголовка)
![]() Наверно, придется по первой ячейке определять, какой номер строки соответствует очередной записи, и разбивать текст на записи по номеру строки.
0
|
2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
07.08.2012, 15:04 [ТС] | 14 |
Казанский, мрак, конечно, полный
![]() Наверное, действительно можно сделать так, как Вы предлагаете, для меня звучит разумно. Но я гн знаю, как это реализовать, как и пересчет с помощью VBA скрипта. Только надо еще учесть, что ворд почему-то периодически размещал текст в разных столбцах не на одном вертикальном уровне, т.е. части строки были сдвинуты друг относительно друга вверх или вниз, из-за чего по документу хаотически раскиданы "Интервалы перед". Не создаст ли это дополнительных проблем? При переносе в одну ячейку их не возникло.
0
|
6023 / 3217 / 719
Регистрация: 23.11.2010
Сообщений: 10,752
|
|
07.08.2012, 23:46 | 15 |
Как вариант: сохранила в .pdf, прогнала через FineReader, сохранила в Excel.
Но учитывая, что у Вас очень большой объем.... При этом не уверена в последних строчках 6-ой ячейки, мне кажется там текст смещается относительно 4-ой ячейки.
1
|
Модератор
![]() ![]() |
|
08.08.2012, 01:01 | 16 |
игра шрифтами и ориентацией(поля минимальные)
шрифт 7 --более менее пригоден шрифт 9 --терпимо больше 9 --не лезет в ширину листа в номере --учтена буква в дате --полный формат в цене --номинал 90-х
1
|
Модератор
![]() ![]() |
|
08.08.2012, 01:17 | 17 |
у вас же поля по 1 и 0,5 см ---как сшивать листы и явно односторонняя печать
0
|
2 / 2 / 0
Регистрация: 01.08.2012
Сообщений: 12
|
|
24.08.2012, 23:02 [ТС] | 18 |
Fairuza
Спасибо, идея интересная. Но даже если весь документ удастся так обработать, то это слишком ненадежно. Вероятность сдвигов/опечаток слишком велика, а в таком документе это неприемлемо. shanemac51 Честно говоря, не понял смысла манипуляций. У меня нет проблем со шрифтами и ориентацией. Мне бы придумать, как перевести это всё в эксель и настроить автозамену номеров отдельно в каждом разделе с учетом букв. Мне понравилась идея Но как ее реализовать?
0
|
6023 / 3217 / 719
Регистрация: 23.11.2010
Сообщений: 10,752
|
|
25.08.2012, 13:40 | 19 |
Вероятность опечатки небольшая, потому что текст не со сканера распознается.
А вот то что есть сдвиги, это да, тут надо будет каждый лист перепроверять. Я их заметила только потому, что в конце строки стояла запятая, а если не стояла бы...
0
|
25.08.2012, 13:40 | ||||||
Помогаю со студенческими работами здесь
19
Ноутбук для серфинга и работы в интернете с большим количеством вкладок Работа с большим количеством данных График с большим количеством данных Не работает код с большим количеством данных Работа с графиком и большим количеством данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Перечисления в TypeScript: использование и лучшие практики
run.dev 18.03.2025
Пишете код и устали от разбросанных по проекту "волшебных" строк и чисел? Знакомая ситуация: где-то в глубине кода притаилась строка "ADMIN", а в другом месте используется "admin". И вот уже. . .
|
Фишки Kotlin, которые все любят
Javaican 18.03.2025
Помню, как скептически относился к появлению "ещё одного языка для JVM" — мол, зачем нам что-то новое, когда есть Java? Но первый же проект на Kotlin заставил меня пересмотреть свое мнение. Код стал. . .
|
Списки и кортежи в Python: различия, особенности, применение
py-thonny 18.03.2025
Если вы когда-нибудь писали код на Python, то наверняка сталкивались с конструкциями вида или ('имя', 25, 'инженер'). Это и есть списки и кортежи — последовательности, хранящие упорядоченные наборы. . .
|
Интеграция JavaScript в Haskell
golander 18.03.2025
Ключевая особенность нового JS-бэкенда GHC — возможность создавать колбэки из JavaScript в Haskell-код. Это открывает дорогу разработке полноценных браузерных приложений, позволяя реагировать на. . .
|
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
|
Предсказание ветвлений - путь к высокопроизводительному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
|
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
|
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
|
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
|
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
|