Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Пт Май 19, 2017 06:18  Читать и записывать в один и тот же Excel файл |
|
Полезность: Нет оценки
|
Как читать и записывать одновременно в один и тот же excel файл? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пт Май 19, 2017 09:26  ? |
|
Полезность: Нет оценки
|
А зачем ? |
|
 |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Пт Май 19, 2017 09:53  Re: ? |
|
Полезность: Нет оценки
|
Есть excel файл, в котором есть список имен jpg файлов. Имена этих файлов, это ID клиента.
Нужно прочитать excel извлечь из строки вида "123456.jpg" ID клиента, найти этого клиента в базе и обратно в этот же excel файл рядом с именем jpg файла записать ФИО клиента. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пт Май 19, 2017 10:16  Re: ? |
|
Полезность: Нет оценки
|
jamil пишет: |
Есть excel файл, в котором есть список имен jpg файлов. Имена этих файлов, это ID клиента.
Нужно прочитать excel извлечь из строки вида "123456.jpg" ID клиента, найти этого клиента в базе и обратно в этот же excel файл рядом с именем jpg файла записать ФИО клиента. |
Какое то сомнительное удовольствие:
1. Херится эталонный файл, т.е. его уже нельзя признать эталонным после записи в него
2. Считать строки можно через скрипт, но одновременно записать туда не уверен
Проще считать и создать отдельно файл типа "*_со_сверкой.xls" а ещё лучше залить ваш файл в справочник ЦФТ, притянуть клиента туда, которые есть, и если надо кому выгрузить через "печать" |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Май 22, 2017 05:21  Re: ? |
|
Полезность: 1
|
jamil пишет: |
Есть excel файл, в котором есть список имен jpg файлов. Имена этих файлов, это ID клиента.
Нужно прочитать excel извлечь из строки вида "123456.jpg" ID клиента, найти этого клиента в базе и обратно в этот же excel файл рядом с именем jpg файла записать ФИО клиента. |
Ну в клиент скрипте цикл по строкам файла,
считываете значение в столбце 1 в переменную на форме,
вызываете проверку результат которой в переменную на форме
в к-с в столбец 2 прописываете результат
переходите к следующей строке. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пн Май 22, 2017 06:59  Re: ? |
|
Полезность: 1
|
Alkov пишет: | jamil пишет: |
Есть excel файл, в котором есть список имен jpg файлов. Имена этих файлов, это ID клиента.
Нужно прочитать excel извлечь из строки вида "123456.jpg" ID клиента, найти этого клиента в базе и обратно в этот же excel файл рядом с именем jpg файла записать ФИО клиента. |
Ну в клиент скрипте цикл по строкам файла,
считываете значение в столбце 1 в переменную на форме,
вызываете проверку результат которой в переменную на форме
в к-с в столбец 2 прописываете результат
переходите к следующей строке. |
Совершенно верно!
На экранной форме операции делаете кнопку.
Жмёте кнопку.
В VB-скрипте запускается sub.
.. Внутри создаёте переменную, в которой открываете COM-объект Excel.
.. Открываете файл.
.. цикл
.. .. Считываете строку.
.. .. Запускаете синхронный вызов операции через Form1.ScriptServerValidate.
.. .. Пишете в файл через всё ту же com-переменную.
.. следующая строка
.. Сохраняете файл.
Выходите из sub.
Если слишком медленно, можно потом оптимизировать  |
|
 |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Пн Май 22, 2017 12:31  Re: ? |
|
Полезность: Нет оценки
|
Эмиралька пишет: | Alkov пишет: | jamil пишет: |
Есть excel файл, в котором есть список имен jpg файлов. Имена этих файлов, это ID клиента.
Нужно прочитать excel извлечь из строки вида "123456.jpg" ID клиента, найти этого клиента в базе и обратно в этот же excel файл рядом с именем jpg файла записать ФИО клиента. |
Ну в клиент скрипте цикл по строкам файла,
считываете значение в столбце 1 в переменную на форме,
вызываете проверку результат которой в переменную на форме
в к-с в столбец 2 прописываете результат
переходите к следующей строке. |
Совершенно верно!
На экранной форме операции делаете кнопку.
Жмёте кнопку.
В VB-скрипте запускается sub.
.. Внутри создаёте переменную, в которой открываете COM-объект Excel.
.. Открываете файл.
.. цикл
.. .. Считываете строку.
.. .. Запускаете синхронный вызов операции через Form1.ScriptServerValidate.
.. .. Пишете в файл через всё ту же com-переменную.
.. следующая строка
.. Сохраняете файл.
Выходите из sub.
Если слишком медленно, можно потом оптимизировать  |
Спасибо. Предложенные варианты помогли и задачу решил. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Май 22, 2017 12:33  Re: ? |
|
Полезность: Нет оценки
|
jamil пишет: |
Спасибо. Предложенные варианты помогли и задачу решил. |
По скорости как? |
|
 |
jamil Участник - экстремал
Вступление в Клуб: 11.08.2014
|
Пн Май 22, 2017 13:06  Re: ? |
|
Полезность: Нет оценки
|
yaffil пишет: | jamil пишет: |
Спасибо. Предложенные варианты помогли и задачу решил. |
По скорости как? |
Excel с 5555 строками данных обработался за 2 минуты 30 секунд. |
|
 |
|