Импорт файлов типов XLS, DBF, и TXT в табличное поле (Простой читальщик xls файлов)

0. 1769 11.01.08 14:52 Сейчас в теме
Отчёт предназначен для чтения файлов *.xls, *.dbf и *тхт с разделителями в табличное поле данного отчёта для последующей обработки.


Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. vasilykushnir 11.01.08 14:52 Сейчас в теме
C почином, Санек. Поддержим коллегу!
2. Abadonna 3894 11.01.08 16:01 Сейчас в теме
Кушнир-то фиг проверил, нет у него восьмерки, а я проверил ;)
Рабочая, как новичку- плюс
12. PeRom 51 25.09.08 11:00 Сейчас в теме
>открытие и чтение файла с количеством 5…10 000 строк происходит за 1…5 секунд
Как этого добился? Что используешь?
Последнюю обработку скачать не могу, а в текстовых тот-же принцип, что и у меня:
Код
Файл = Новый COMОбъект("Excel.Application");
Файл.DisplayAlerts = 0;                   //не задавать вопросы
Файл.Application.AutomationSecurity = 3;  //уровень безопасности
Книга = Файл.Workbooks.Open(ФайлХЛ);//строка выполняется 5-6 минут, какая альтернатива?
Лист = Книга.Worksheets(2);
Пока (НЕ ПустаяСтрока(Строка(Лист.Cells(строкаXL,1).Value))) или
   (НЕ ПустаяСтрока(Строка(Лист.Cells(строкаXL,2).Value))) Цикл
   строкаXL = строкаXL+1;
КонецЦикла;                                       
COMSafeArrayМассив = Лист.range(Лист.Cells(1,1),Лист.Cells(строкаXL,249)).Value;
Книга.Close();
Показать полностью

открываю файл с несколькими листами, макросами и паролем. Как ещё можно считать из него инфу и желательно без ВК?
3. vasilykushnir 11.01.08 17:13 Сейчас в теме
А на каком фигу я ее проверю? Просто коллега по цеху смотрю пырвую обработку выложил - решил поддержать доброе начинание, дабы не заклевали новичка.
4. imsoftware 173 12.01.08 18:38 Сейчас в теме
5. Abadonna 3894 12.01.08 21:00 Сейчас в теме
Предусмотри и еще один режим на тот случай, если первая строчка ёкселя содержит заголовки колонок, в это случае создавать колонки не Колонка1...КолонкаX, например, Наименование-Количество-Цена. Будет юзабельнее
6. Шёпот теней 1769 14.01.08 08:00 Сейчас в теме
(5) Спасибо, Abadonna!

У меня так и работает. Да! Если это ещё кому то нужно, обязательно вставлю... Просто хотелось максимальной простоты, понятности и универсальности... Особенно для новичков... Когда месяц назад стал изучать 8-ку был в ужасе... теперь ничего...

Спасибо, ещё раз... Удачи!
7. Шёпот теней 1769 14.01.08 09:18 Сейчас в теме
(5) По совету "Abadonna" дополнил отчёт перенаименованием колонок табличного поля по выбранной строке или по выбранной ячейки см. файл и описание к файлу "ЧтениеЭкселя_01"

Спасибо всем кто выразил своё мнение в комментариях и/или скачиваниях данного отчёта.

Всем удачи и успехов!
8. serg1c 23 14.01.08 11:59 Сейчас в теме
Ну вообще-то обработкой текстовый файл можно назвать только с натяжкой!
А файлы .efd вообще как обработка не котируются.
Я не понял. Или убрали с сайта .ert или так и было?
9. serg1c 23 14.01.08 12:18 Сейчас в теме
Я видать не понял.
Это для 8-ки что-ли?
10. Шёпот теней 1769 14.01.08 18:04 Сейчас в теме
Спасибо магнтогорцам за советы и общение...

Всем удачи!
11. Abadonna 3894 14.01.08 18:10 Сейчас в теме
(8,9) А фигли понимать?
Вверху четко написано, хоть и мелкими буквами: "Внешняя компонента для 1С: Предприятие 8.0"
Правда она не внешняя, но для 8.0 - точно ;)
13. Dirk Diggler 08.01.10 04:15 Сейчас в теме
Отличная обработка. Пару идей выскажу. Лично мне не хватает:

  • возможности редактировать содержимое таблицы
  • загрузки нескольких листов по выбору
  • Удаления столбцов и строк
  • переноса в выбранную табличную часть
15. Шёпот теней 1769 18.01.10 15:05 Сейчас в теме
(13) загрузка из листов реализовано здесь: http://infostart.ru/public/22279/ ... думаю что реализовать загрузку из нескольких листов в одну ТЗ труда не составит ...
14. uri1978 130 18.01.10 12:58 Сейчас в теме
Спасибо. Буду использовать как пример для написания своей обработки.
То что нужно!
;)
16. Шёпот теней 1769 18.01.10 15:13 Сейчас в теме
(14) ... и вам спасибо ...

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

быстрота чтения из Ексель достигается чтением листа не по ячейкам, хотя и это иногда нужно, а сразу весь лист оператором UsedRange.Value ... а при записи использовать в ексель файл использовать запись всей ТЗ используя МассивКОМ = Новый COMSafeArray("VT_VARIANT", ВсегоКолонок, ВсегоСтрок);
...

всё это есть в обработке: http://infostart.ru/public/22279/ ...

... вот ...
17. Шёпот теней 1769 19.01.10 08:09 Сейчас в теме
для uri1978 ... и кому интересно ... есть интересный сайт http://www.citforum.ru/programming/windows/ ... тут можно найти некоторые ответы ...

на вопрос:как при использовании UsedRange.Value избежать автоматического перевода текста "0100100" в число (100100) прямого ответа у меня нет ...

КТО знает подскажите ... ?

я делаю так ... в ексель при помощи функции "СЦЕПИТЬ" добавляю к явному текстовому полю знак апострофа ... а потом его удаляю ...

п.с. видимо надо копировать надо не UsedRange.Value а другим оператором копирования колонок с заданным форматом ...

дополнительные операторы можно посмотреть тут : http://msdn.microsoft.com/en-us/library/aa215923(office.11).aspx

... вот ...
18. gaglo 19.01.10 10:57 Сейчас в теме
(17) Заинтересовался... ибо вопрос сформулирован несколько расплывчато. Что есть "явное текстовое поле"? Ячейкам в Экселе задан формат "текстовый"? Последующее упоминание апострофов наводит на мысль, что формат всё-таки "общий", и тогда поле "явно текстовое" только для человеков.
По результатам моих экспериментов для чтения через Value выводы таковы:
- если ячейке Экселя явно задан формат "текстовый", то в 1С попадает значение как строка;
- если задан формат "числовой", то в 1С попадет число;
- если формат ячеек (по умолчанию) "общий", то по дороге неизбежно происходит то самое автоматическое преобразование: значения становятся числами, если только их возможно полностью преобразовать в число, иначе становятся строками (.10 будет числом, .10.24 - станет строкой);
- формат ячеек Экселя должен быть установлен до ввода значений в них!! иначе придется "обновить" значения в ячейках с измененным форматом, хотя бы банальным F2-Enter, чем я иногда и занимаюсь (с помощью кнопки и макроса).
Насчет другого оператора копирования колонок сильно сомневаюсь; можно попробовать забирать UsedRange.Text, тогда все ячейки превратятся в строки; поможет ли это в деле последующего разбора? Пока непонятно...
PS Тут же и попробовал - UsedRange.Text как массив не берется (не то что Value), а по одной ячейке неинтересно ;-[
Шёпот теней; +1 Ответить
19. Шёпот теней 1769 19.01.10 12:58 Сейчас в теме
(18) ... нууу... просто СПАСИБО ... и не ПРОСТО то же... ВОТ ...

хм... проблема в том, что если в Екселе стоит формат.общий и там стоит "001" то если колонку с данной ячейкой сделат формат.текстовое то ексель делает "001" как (1) ... приходится копировать колонку и вставлять её как текст что не всегда получится ... ))) ... поэтому делаю как в (17) ...

полностью согласен поячеечное чтение не "фонтан"...
мне больше нравится сохранять данные из 1С в 1С через mxl или ЗначениеВФайл/ЗначениеИзФайла ...

... вот ...
33. gaglo 20.01.10 13:06 Сейчас в теме
(19) Мы вдвоем взаимно согласны друг с другом!
Но теперь мне непонятно: как можно сделать в Экселе формат общий и значение 001? Руками не получается, даже если я набираю клавишами 001; стоит нажать Enter, и в ячейке остается и значение 1, и видимое представление "1", но без всяких нулей. Речь идет, что ли, о табличке -продукте быстрой выгрузки из 1С?
34. Шёпот теней 1769 20.01.10 14:22 Сейчас в теме
(33) ... правила - ОБЩИЕ ... применение - "ЧАСТНОЕ" ...

форматОбщий не даст сделать "001" ... либо текствоый либо какой-нибудь придумать форматСпециальный ...

... наверное ...

если сохранять методами 1С "вывести" и "сохранить копию" там то же будет куча вопросов ... т.к. формат подберЁтся весьма странный ... вОООбщем теория всегда Общая а практика всегда - Частная ...

... ВОТ ...
23. Шёпот теней 1769 19.01.10 14:11 Сейчас в теме
(22) ... всё стало понятно ... оказывается то была реклама...)))

сначало чем не устраивает поячеечное чтение обработки с диска ИТС ... а потом купите у меня ... моя лучше... ))))

... вотоднаковот ...


п.с. Eugeneer - не перебАрщивай с манией ...
32. larisab 159 20.01.10 08:44 Сейчас в теме
(24) И это при том что сабж 2008 года :o
27. Шёпот теней 1769 19.01.10 15:09 Сейчас в теме
(26) ... вместо цыц ... взял бы и научил бы нас как в 1С ... "в 1с ...вся экселевская таблица.....полностью загружается в таблицу значений 1С......ОДНИМ методом..... " ...

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

... вОт ...

п.с. по поводу 2010 года... это была моя самая первая обработка написаннная в 2007 году на 1С 8.0 ... и прекрасно помню как с БОЛЬШИМ интересом читал подобные обработки ...
28. Шёпот теней 1769 19.01.10 16:59 Сейчас в теме
жаль... жаль... что Eugeneer так и не научил нас : ... "в 1с ...вся экселевская таблица.....полностью загружается в таблицу значений 1С......ОДНИМ методом..... " ...

видимо умность и жадность рядом ходят .... хм... или на одной шеи сидят ...

... ВОТведьВОТ ...
31. Шёпот теней 1769 20.01.10 08:39 Сейчас в теме
(30) ... Eugeneer ! ... у вас ко мне мания ...

... данная обработка и txt - загружает, и dbf - грузит (хотя и dbf лучше открывать как xls - меньше проблем с кодовыми страницами) ...

... воообщем НЕпонятно чтоТО или чтоТО не о ТОМ ...

... вотВобщемТАКвот ...
35. Ish_2 1064 24.01.10 11:36 Сейчас в теме
Шепот , ты не поверишь !
Искать , заморачиваться было некогда .Нужно было быстро,"с ходу" загрузить некий xls именно в ТЗ как самый удобный формат для дальнейшей обработки.
Воспользовался.
ilya.don; Шёпот теней; +2 Ответить
36. aleks_pro 27.10.11 16:38 Сейчас в теме
Выдает ошибочку. Будем смотреть
Шёпот теней; +1 Ответить
37. Stepan_1c 13.12.11 04:59 Сейчас в теме
Спасибо за работу=)
Шёпот теней; +1 Ответить
38. lushka 8 27.12.11 11:03 Сейчас в теме
Спасибо, очень выручили :)
39. Boudybuilder 66 22.03.12 14:42 Сейчас в теме
Спасибо за работу. Будем смотреть что за зверь такой.
Ато я тут парюсь со своей разработкой.
Хотелось чтоб скачивать значения из прайса можно было в регистр НоменклатураКонтрагентов , а потом уже загружать из разных фирм прасов цены , вот так чтоб каждый день свеженькую информацию иметь .
Да и кстати прайсы то у всех с разными структурами колонок. Один тут такой хитрый прайс есть , не знаю пока как его обрабатывать , та характеристика в отдельной колонке, но не в отдельных строках , а по одной номенкдлатуре все характеристики збиты в одну яейку через запятую , а вот это уже мне не нравится...
Другое дело когда товар сразной характеристикой разложен отдкльно по строках , да еще и колонка с кодом товара есть. Но ниче. Нет ничего невозможного , будем пробовать делать.
40. Boudybuilder 66 22.03.12 14:42 Сейчас в теме
(Спасибо за работу. Будем смотреть что за зверь такой.
Ато я тут парюсь со своей разработкой.
Хотелось чтоб скачивать значения из прайса можно было в регистр НоменклатураКонтрагентов , а потом уже загружать из разных фирм прасов цены , вот так чтоб каждый день свеженькую информацию иметь .
Да и кстати прайсы то у всех с разными структурами колонок. Один тут такой хитрый прайс есть , не знаю пока как его обрабатывать , та характеристика в отдельной колонке, но не в отдельных строках , а по одной номенкдлатуре все характеристики збиты в одну яейку через запятую , а вот это уже мне не нравится...
Другое дело когда товар сразной характеристикой разложен отдкльно по строках , да еще и колонка с кодом товара есть. Но ниче. Нет ничего невозможного , будем пробовать делать
Шёпот теней; +1 Ответить
41. Шёпот теней 1769 22.03.12 22:54 Сейчас в теме
42. 7OH 32 03.12.13 18:31 Сейчас в теме
А не подскажете пример, такой же, но с возможностью редактировать загруженное.
Загрузить на чтение у меня и так получилось.
При программном создании колонки - получается только читать.
43. Шёпот теней 1769 04.12.13 09:00 Сейчас в теме
(42) для возможности непосредственного редактирования надо указать ТИП колонок таблицы ... вот ...
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Санкт-Петербург
зарплата от 110 000 руб.
Полный день

Программист 1С
Москва
зарплата от 170 000 руб.
Полный день

Программист 1С (Казань)
Казань
зарплата до 130 000 руб.
Полный день

Программист 1С (Новосибирск)
Новосибирск
зарплата до 130 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 180 000 руб.
Полный день