|
|
|
Как получить значение ячейки из файла excel? | ☑ | ||
|---|---|---|---|---|
|
0
Shaytan
12.10.04
✎
17:05
|
Есть *.xls файл мне нужно последовательно считать каждую ячейку (в ячейке находится текст). Как обратиться к ячейке? Или может лучше сохранить как текстовый файл и не париться?
|
|||
|
1
Волшебник
12.10.04
✎
17:15
|
Через OLE:
Excel = ПолучитьCOMОбъект(,Путь); далее как в 7.7 |
|||
|
2
Shaytan
12.10.04
✎
17:41
|
А подробнее?
|
|||
|
3
Shaytan
12.10.04
✎
17:43
|
Мне надо подключится к excel через COM, открыть из него файл и считывать ячейки? (1) Я этого в 7.7 не делал
|
|||
|
4
Diman
12.10.04
✎
17:47
|
||||
|
5
miki
12.10.04
✎
17:48
|
...
ExcelApp = СоздатьОбъект("Excel.Application"); ... РабочаяКнига=ExcelApp.WorkBooks; РабочаяКнига.Open(<ИмяФайла_XLS>); Лист=ExcelApp.WorkSheets(1); ... Далее пускаешь цикл по строкам с счетчиком <Счетчик_строк> В цикле ... Значение=Лист.Cells(<Счетчик_строк>,<Номер_Колонки>).Value; //<Номер_Колонки> - нужная колонка ... КонецЦикла; |
|||
|
6
Shaytan
12.10.04
✎
17:57
|
Спасибо всем. попробую.
|
|||
|
7
Shaytan
13.10.04
✎
13:09
|
Сделал так, может кому пригодится:
Об_Excel=Новый COMОбъект("Excel.Application"); Об_файл = Новый Файл(ПутьКФайлуИсточнику); Ч_НачСтрока=0; Если Об_файл.Существует() Тогда Стр_Конект = "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq="+Об_файл.ПолноеИмя+";DefaultDir="+Об_файл.Путь+";"; Об_Конект = Новый COMОбъект("ADODB.Connection"); Попытка Об_Конект.Open(Стр_Конект); Исключение Сообщить ("Не возможно подключится к Microsoft Excel Driver!!! |Возможно файл ["+Об_файл.ПолноеИмя+"] открыт другим пользователем!!!"); Возврат; КонецПопытки; Попытка Стр_SQL = "SELECT FIO FROM [A:A] where FIO <>'' ORDER BY FIO"; Об_РекордСет=Об_Конект.Execute(Стр_SQL); Исключение Сообщить ("Не возможно получить данные из файла ["+Об_файл.ПолноеИмя+"] открыт другим пользователем!!!"); Возврат; КонецПопытки; НоваяГрупп = Справочники.ФизическиеЛица.СоздатьГруппу(); НоваяГрупп.Наименование = Об_файл.Имя; НоваяГрупп.Записать(); СМ_ФизЛица = Справочники.ФизическиеЛица; Пока Об_РекордСет.EOF = Ложь Цикл НовыйЭлемент = СМ_ФизЛица.СоздатьЭлемент(); Состояние = " Загрузка " + СокрЛП(Об_РекордСет.Fields(0).value); НовыйЭлемент.Наименование = СокрЛП(Об_РекордСет.Fields(0).value); НовыйЭлемент.Родитель = НоваяГрупп.Ссылка; НовыйЭлемент.Записать(); Об_РекордСет.MoveNext(); КонецЦикла; //Об_РекордСет.EOF<>-1 Состояние = "Загрузка завершена!"; Об_Конект.Close(); Об_Конект=Неопределено; Об_РекордСет=Неопределено; Иначе Сообщить ("Не верно указано имя файла!!!"); возврат; КонецЕсли; // Об_файл.Существует() КонецПроцедуры |
|||
|
8
ШпиЁн
01.11.04
✎
06:02
|
Выражение звучало: SELECT FIO FROM [A:A] where FIO <>'' ORDER BY FIO
Обругали: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Excel] Слишком мало параметров. Требуется 1. Не совсем понял за что отругали!!!? |
|||
|
9
Shaytan
01.11.04
✎
09:18
|
Не знаю. Я привел кусок рабочего кода. FIO <> '' - две одинарные ковычки. Это простейший пример где в фойле EXСEL данные находятся в первой колонке первого листа, и название колонки FIO.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |