-
Есть одна программа_1. Она умеет экспортировать данные в excel, пусть это будет файл_1.xls. Формат файла изменять возможности нет. Т.е. это некий фиксированный набор колонок с фиксированными названиями.
Есть другая программа_2, которая умеет импортировать данные из excel файла жёсткого формата (шаблона), пусть это будет файл_2.xls
Требуется файл_1.xls сконвертировать в файл_2.xls
Подскажите, какими технологиями это можно сделать минимумом затрат? или готовые программы может есть.
Я умею только программку накидать чтобы через COM-объект подключиться к каждому файлу, скопировав ячейки как нужно.
Ну или на VBA, правда не понятно в какой его файл встроить в этой схеме (наверное в файл-приёмник, т.е. в файл_2.xls, потому как файл_1 пишется всегда с нуля).
Но может есть вариант проще, без самописных программ?
Может вообще сам Excel умеет как-то так переносить данные?
Считаем, что менять местами столбцы в файл_1 и файл_2 возможности нет.
-
вариантов примерно миллиард.
и это только на самом екселе без ничего другого
-
Есть другая программа_2, которая умеет ....
плохо что она не умеет самого главного.
сама понимать в какой колонке какие данные засунуты.
-
> rrrrrrr © (15.08.17 12:25) [1]
> вариантов примерно миллиард.
> и это только на самом екселе без ничего другого
Быть может вас не затруднит назвать штуки четыре-пять методов?
-
ну к примеру ячейки одной книги могут содержать ссылки на ячейки другой книги.
или к примеру вба второй книги может вынуть в себя данные первой (миллионом способов)
или вынуть наружу
или еще например книга эксель умеет быть базой данных через оледб.
но в данном случае все это костыли.
когда меня лично запарил зоопарк входящих экселей,
то я нарисовал интеллектуальный импорт, которому все равно как там колонки расположены, сколько строк преамбулы до табличных данных и так далее.
к тому же это применимо не только к экселю, а ко всему что имеет регулярную структуру (текст, дбф, xml и т.д.)
но десять лет назад пришлось потратить целый день. или два.
-
> ну к примеру ячейки одной книги могут содержать ссылки на
> ячейки другой книги.
Со ссылками не понятно. Вариант хорош вроде, но я не знаю сумеет ли в таком варианте программа_2 заимпортировать в себя именно данные, а не формулы.
> или к примеру вба второй книги может вынуть в себя данные
> первой (миллионом способов)
> или вынуть наружу
> или еще например книга эксель умеет быть базой данных через оледб.
Ну т.е. VBA, верно?
-
ну да, вба.
в первом случае будут импортированы данные
-
> > или еще например книга эксель умеет быть базой данных
> через оледб.
>
> Ну т.е. VBA, верно?
да любое знакомое-привычное, могущее оледб юзать.
но я бы поставленную задачу реализовал бы скриптом vba в первой книге, и попробовал бы его заставить на любые внешние запросы как к книге_2 отдавать в виде книги_2.
в этом случае не потребуется программы_3
-
> rrrrrrr © (15.08.17 12:50) [6]
> в первом случае будут импортированы данные
А можно тогда поподробнее как вписать такие ссылки?
Это был бы хороший вариант: фактически сформировать шаблон, у которой например 10 строк заполнено ссылками на другой файл_1, перезаписываем файл_1 - фактически меняем данные в файл_2 (который со ссылками)
Это ведь так будет работать, верно?
Надо попробовать. Правда есть у меня какое-то сомнение, признаться: файл_2 засасывается через web-сайт, неужели данные в него волшебно уедут??
-
для начала скрипт на вбС, который сделает из первой вторую книгу.
затем AI импорт
-
файл_2 засасывается через web-сайт
пусть на сайт заливается книга1, а в ответ сливается книга 2
-
Это был бы хороший вариант
на самом деле не очень вариант.
вторая книга при открытии будет рассказывать что вот сейчас она будет обновлять связи на внешние источники
-
> rrrrrrr © (15.08.17 13:01) [11]
> Это был бы хороший вариант
> на самом деле не очень вариант.
> вторая книга при открытии будет рассказывать что вот сейчас
> она будет обновлять связи на внешние источники
Ну т.е. не заработает верно?
> rrrrrrr © (15.08.17 12:59) [10]
> файл_2 засасывается через web-сайт
>
> пусть на сайт заливается книга1, а в ответ сливается книга 2
Я, вероятно, неточно выразился.
Прога_2 (которая импортирует данные) - это и есть сторонний вебсайт.
-
а если формат файла из последних, на хмл, то можно вообще на всё наплевать и конвертить как угодно
-
что-то я запутался.
можно схему на пальцах?
пока я понял, что есть локальный эксель1 и кто-то где-то хочет иметь эксель2
-
> KilkennyCat © (15.08.17 13:06) [13]
> а если формат файла из последних, на хмл, то можно вообще
> на всё наплевать и конвертить как угодно
Кстати да, тоже вариант.
Правда вопрос тот же: каким софтом сделать конверсию? оно ж еще и зипованное
-
> rrrrrrr © (15.08.17 13:09) [14]
> что-то я запутался.
> можно схему на пальцах?
Есть прога_1. Сторонняя.
Она умеет экспортировать в жёсткий формат файл_1.xls
Есть вебсайт_2. Сторонний.
Она умеет импортировать жёсткий формат файл_2.xls
Вопрос: как преобразовать файл_1.xls в файл_2.xls с минимальными затратами, в идеале желательно без привлечения программирования, ну либо на чем-то попроще в плане времязтрат (в VBA мне разбираться надо будет, но решаемо, конечно)
-
.vbs скрипт
открываем книгу 1
вынимаем данные.
делаем книгу 2
делаем пост книги2 на сторонний сайт
по мне писать vbs в FAR'е удобнее, чем колупать vba макросы в книге.
-
давай книжку первую.
напишу.
все равно пока заняться нечем
-
> rrrrrrr © (15.08.17 13:32) [18]
> давай книжку первую.
> напишу.
у вас e-mail верный указан на форуме?
Если нет - напишите мне по e-mail, пожалуйста
-
ушло
-
>>Подскажите, какими технологиями это можно сделать минимумом затрат?
У excel форматов используемых 2 - BIFF, который мегастрый и XLSX который xml в пожатом зипе - для всех есть библиотеки для чтения и записи. Даже 1С, даже php, даже python умеет все это дело обрабатывать без COM.
-
я бы руками написал на дельфи через ком.
чтобы не тормозило чтение, читал бы сразу в вариантный массив нужный регион (тысячи ячеек).
возможно и писать можно быстро через ком через регионы, не пробовал.
но я обычно все быстро пишу на самописной либе, выводящей в BIFF8 (tesseract - правильно именно BIFF8, ибо остальные бифы - анахронизм).
-
похоже все проходят такой период,
когда на каждый случай типа сложить два плюс два
появляется Project1.exe c Button1 на форме
и через месяц никто не помнит что там внутри делается
-
> rrrrrr © (19.08.17 09:08) [23]
Ты, видно, самый опытный тут.
-
не совсем понял, почему это из [23] следует,
но что есть, то есть.
-
> rrrrrr © (19.08.17 22:14) [25]
> не совсем понял, почему это из [23] следует,
> но что есть, то есть
Ну я сделал такой вывод. Извини, если обидел :)
По ТЗ топикстартера я бы сделал конкретное (можно сказать, туповатое) приложение. Возможно назвал бы его Project1 ;)
За время обсуждения я бы и приложение написал, и справку к нему.
По ходу эксплуатации станет ясно, что нужно дописать и как добавить гибкости. Я понимаю, что, возможно, уже все украдено до нас. Но я бы написал свое приложение на данный конкретный случай.
-
> По ТЗ топикстартера я бы сделал конкретное (можно сказать,
> туповатое) приложение. Возможно назвал бы его Project1
так вроде как раз и не хотелось никаких екзе топикстартеру.
согласен, что скрипт тут достаточно хорошее решение
-
> не хотелось никаких екзе топикстартеру.
> согласен, что скрипт тут достаточно хорошее решение
скрипт не так уж сильно отличается о екзе. более того, к скрипту может быть примонстрячена Button1, сам скрипт называться Project1 и через месяц никто не вспомнит, почему и зачем
-
скрипт можно читать и смотреть что он делает.
исходник exe конечно тоже можно читать и смотреть что он делает.
правда он ничего не делает, а делает все exe который читать нельзя.
зато можно гадать по этой ли версии исходников он был собран месяц назад, или это всего лишь промежуточная бета.
да да, я помню, есть вершон инфо, документация, lts и прочие академичности.
-
в том то и дело что и не вспомнит и посмотреть некуда, потому что раз и не помнять то и сырцы потеряны, а скрипт и в африке скрипт ))
-
чаще бывает так, что когда появляется первый релиз, то к исходникам спустя некоторое время возвращаются и делают там какой-нибудь улучшайзинг "на будущее", не обновляя рабочий exe.
-
вот ща хоть и не африке, но сижу и смотрю на чужие скрипты и запросы в акцессе...и грустно и тоскливо мне.
-
скрипты рулят.
рулят и разруливают.