Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2

Копирование данных из одного xls-файла в другой


KSergey ©   (15.08.17 12:07

Есть одна программа_1. Она умеет экспортировать данные в excel, пусть это будет файл_1.xls. Формат файла изменять возможности нет. Т.е. это некий фиксированный набор колонок с фиксированными названиями.

Есть другая программа_2, которая умеет импортировать данные из excel файла жёсткого формата (шаблона), пусть это будет файл_2.xls

Требуется файл_1.xls сконвертировать в файл_2.xls

Подскажите, какими технологиями это можно сделать минимумом затрат? или готовые программы может есть.
Я умею только программку накидать чтобы через COM-объект подключиться к каждому файлу, скопировав ячейки как нужно.
Ну или на VBA, правда не понятно в какой его файл встроить в этой схеме (наверное в файл-приёмник, т.е. в файл_2.xls, потому как файл_1 пишется всегда с нуля).

Но может есть вариант проще, без самописных программ?
Может вообще сам Excel умеет как-то так переносить данные?

Считаем, что менять местами столбцы в файл_1 и файл_2 возможности нет.


rrrrrrr ©   (15.08.17 12:25[1]

вариантов примерно миллиард.
и это только на самом екселе без ничего другого


rrrrrrr ©   (15.08.17 12:31[2]

Есть другая программа_2, которая умеет ....

плохо что она не умеет самого главного.
сама понимать в какой колонке какие данные засунуты.


KSergey ©   (15.08.17 12:33[3]

> rrrrrrr ©   (15.08.17 12:25) [1]
> вариантов примерно миллиард.
> и это только на самом екселе без ничего другого

Быть может вас не затруднит назвать штуки четыре-пять методов?


rrrrrrr ©   (15.08.17 12:39[4]

ну к примеру ячейки одной книги могут содержать ссылки на ячейки другой книги.
или к примеру вба второй книги может вынуть в себя данные первой (миллионом способов)
или вынуть наружу
или еще например книга эксель умеет быть базой данных через оледб.

но в данном случае все это костыли.

когда меня лично запарил зоопарк входящих экселей,
то я нарисовал интеллектуальный импорт, которому все равно как там колонки расположены, сколько строк преамбулы до табличных данных и так далее.
к тому же это применимо не только к экселю, а ко всему что имеет регулярную структуру (текст, дбф, xml и т.д.)

но десять лет назад пришлось потратить целый  день. или два.


KSergey ©   (15.08.17 12:45[5]

> ну к примеру ячейки одной книги могут содержать ссылки на
> ячейки другой книги.

Со ссылками не понятно. Вариант хорош вроде, но я не знаю сумеет ли в таком варианте программа_2 заимпортировать в себя именно данные, а не формулы.

> или к примеру вба второй книги может вынуть в себя данные
> первой (миллионом способов)
> или вынуть наружу
> или еще например книга эксель умеет быть базой данных через  оледб.

Ну т.е. VBA, верно?


rrrrrrr ©   (15.08.17 12:50[6]

ну да, вба.

в первом случае будут импортированы данные


KilkennyCat ©   (15.08.17 12:55[7]


> > или еще например книга эксель умеет быть базой данных
> через  оледб.
>
> Ну т.е. VBA, верно?

да любое знакомое-привычное, могущее оледб юзать.
но я бы поставленную задачу реализовал бы скриптом vba в первой книге, и попробовал бы его заставить на любые внешние запросы как к книге_2 отдавать в виде книги_2.
в этом случае не потребуется программы_3


KSergey ©   (15.08.17 12:56[8]

> rrrrrrr ©   (15.08.17 12:50) [6]
> в первом случае будут импортированы данные

А можно тогда поподробнее как вписать такие ссылки?
Это был бы хороший вариант: фактически сформировать шаблон, у которой например 10 строк заполнено ссылками на другой файл_1, перезаписываем файл_1 - фактически меняем данные в файл_2 (который со ссылками)

Это ведь так будет работать, верно?

Надо попробовать. Правда есть у меня какое-то сомнение, признаться: файл_2 засасывается через web-сайт, неужели данные в него волшебно уедут??


rrrrrrr ©   (15.08.17 12:57[9]

для начала скрипт на вбС, который сделает из первой вторую книгу.
затем AI импорт


rrrrrrr ©   (15.08.17 12:59[10]

файл_2 засасывается через web-сайт

пусть на сайт заливается книга1, а в ответ сливается книга 2


rrrrrrr ©   (15.08.17 13:01[11]

Это был бы хороший вариант
на самом деле не очень вариант.
вторая книга при открытии будет рассказывать что вот сейчас она будет обновлять связи на внешние источники


KSergey ©   (15.08.17 13:04[12]

> rrrrrrr ©   (15.08.17 13:01) [11]
> Это был бы хороший вариант
> на самом деле не очень вариант.
> вторая книга при открытии будет рассказывать что вот сейчас
> она будет обновлять связи на внешние источники

Ну т.е. не заработает верно?

> rrrrrrr ©   (15.08.17 12:59) [10]
> файл_2 засасывается через web-сайт
>
> пусть на сайт заливается книга1, а в ответ сливается книга 2

Я, вероятно, неточно выразился.
Прога_2 (которая импортирует данные) - это и есть сторонний вебсайт.


KilkennyCat ©   (15.08.17 13:06[13]

а если формат файла из последних, на хмл, то можно вообще на всё наплевать и конвертить как угодно


rrrrrrr ©   (15.08.17 13:09[14]

что-то я запутался.
можно схему на пальцах?

пока я понял, что есть локальный эксель1 и кто-то где-то хочет иметь эксель2


KSergey ©   (15.08.17 13:13[15]

> KilkennyCat ©   (15.08.17 13:06) [13]
> а если формат файла из последних, на хмл, то можно вообще
> на всё наплевать и конвертить как угодно

Кстати да, тоже вариант.
Правда вопрос тот же: каким софтом сделать конверсию? оно ж еще и зипованное


KSergey ©   (15.08.17 13:15[16]

> rrrrrrr ©   (15.08.17 13:09) [14]
> что-то я запутался.
> можно схему на пальцах?

Есть прога_1. Сторонняя.
Она умеет экспортировать в жёсткий формат файл_1.xls

Есть вебсайт_2. Сторонний.
Она умеет импортировать жёсткий формат файл_2.xls

Вопрос: как преобразовать файл_1.xls в файл_2.xls с минимальными затратами, в идеале желательно без привлечения программирования, ну либо на чем-то попроще в плане времязтрат (в VBA мне разбираться надо будет, но решаемо, конечно)


rrrrrrr ©   (15.08.17 13:22[17]

.vbs скрипт

открываем книгу 1
вынимаем данные.
делаем книгу 2
делаем пост книги2 на сторонний сайт

по мне писать vbs в FAR'е удобнее, чем колупать vba макросы в книге.


rrrrrrr ©   (15.08.17 13:32[18]

давай книжку первую.
напишу.
все равно пока заняться нечем


KSergey ©   (15.08.17 14:27[19]

> rrrrrrr ©   (15.08.17 13:32) [18]
> давай книжку первую.
> напишу.

у вас e-mail верный указан на форуме?
Если нет - напишите мне по e-mail, пожалуйста


Страницы: 1 2 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо