Определение диапазонов при регистрации Excel файла

MapInfo, MapBasic
Ответить
LilLoco
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 11:01
Репутация: 0

Определение диапазонов при регистрации Excel файла

Сообщение LilLoco » 23 янв 2013, 16:17

Добрый день.
Подскажите пожалуйста как определить диапазоны ячеек.
Регистрирую так:

Код: Выделить всё

Register Table s_filename Type XLS Titles Range "Лист1!A2:IK16670" Into tableName
Сейчас диапазон указывается вручную. Как его определить автоматически?

Cancer
Участник
Сообщения: 56
Зарегистрирован: 25 фев 2009, 20:55
Репутация: 3
Откуда: Инструментарий для MapInfo
Контактная информация:

Re: Определение диапазонов при регистрации Excel файла

Сообщение Cancer » 23 янв 2013, 19:06

Опустите фразу Range. Так:
Register Table s_filename Type XLS Titles Into tableName

thegeo
Активный участник
Сообщения: 161
Зарегистрирован: 17 янв 2012, 18:51
Репутация: 74

Re: Определение диапазонов при регистрации Excel файла

Сообщение thegeo » 23 янв 2013, 20:19

Register Table "C:\test.xls" Type XLS Range "Список!A1:D200" Into "C:\tbTest"
здесь Список - имя листа
На рисунке вид окна таблицы после загрузки в MI.
Вложения
mb01008.png
mb01008.png (15.62 КБ) 7792 просмотра

LilLoco
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 11:01
Репутация: 0

Re: Определение диапазонов при регистрации Excel файла

Сообщение LilLoco » 24 янв 2013, 07:25

Cancer, по предложенному вами варианту, заголовки не считываются, они находятся в таблице(

Код: Выделить всё

 Register Table s_filename Type XLS Titles Into tableName 
, к сожалению не работает.

thegeo, вы немного не поняли наверное. Мне необходимо чтобы первая строка - была заголовками, а диапазон писался в таблицу.

juffin_h
Завсегдатай
Сообщения: 265
Зарегистрирован: 22 окт 2012, 08:35
Репутация: 49
Откуда: Нижний Новгород

Re: Определение диапазонов при регистрации Excel файла

Сообщение juffin_h » 24 янв 2013, 09:13

Titles работает только совместно с Range.
Как вариант, регистрировать файл два раза.
Примерный код:

Код: Выделить всё

Register Table "aaa.xls"  TYPE XLS Into "aaa.TAB"
Open Table "aaa.TAB"
iCols = TableInfo(aaa, TAB_INFO_NCOLS)
iRows = TableInfo(aaa, TAB_INFO_NROWS)
sRange = “A2:” + Chr$(iCols + 64) + Str$(iRows)
Close Table aaa
Register Table "aaa.xls"  TYPE XLS Titles  Range sRange Into "aaa.TAB"

LilLoco
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 11:01
Репутация: 0

Re: Определение диапазонов при регистрации Excel файла

Сообщение LilLoco » 24 янв 2013, 09:17

Думал тоже о том, чтобы 2 раза открывать файл. Не очень понравился этот вариант, т.к. появляются дополнительные вычисления.

По поводу Titles теперь ясно.
Видимо, придется использвать вариант с 2мя регистрациями.

thegeo
Активный участник
Сообщения: 161
Зарегистрирован: 17 янв 2012, 18:51
Репутация: 74

Re: Определение диапазонов при регистрации Excel файла

Сообщение thegeo » 24 янв 2013, 14:36

Действительно не совсем понял постановку задачи.
Использую оператор
Register Table "C:\test.xls" TYPE XLS Titles Range "Список!A2:D200" Into "C:\tbTest"
И получаю результат, показанный на рисунке. В чем проблема?
Вложения
mb01010ab.png
mb01010ab.png (29.98 КБ) 7728 просмотров

LilLoco
Новоприбывший
Сообщения: 12
Зарегистрирован: 09 янв 2013, 11:01
Репутация: 0

Re: Определение диапазонов при регистрации Excel файла

Сообщение LilLoco » 24 янв 2013, 14:41

thegeo писал(а):В чем проблема?
Проблема в том, что Вы указываете диапазон вручную (Список!A2:D200). А как его получить программно?

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Определение диапазонов при регистрации Excel файла

Сообщение Boris » 06 фев 2013, 21:53

LilLoco писал(а):
thegeo писал(а):В чем проблема?
Проблема в том, что Вы указываете диапазон вручную (Список!A2:D200). А как его получить программно?
а какое отношение к мапинфо имеет этот вопрос? я знавал людей, которые печатали документы Word Через PowerPoint и пришли к пониманию, что у них есть "проблема" только на документе в 200 страниц. откуда взялась фантазия, что именно манинфо должна выдавать значение заполненных вами ячеек в одном из листов книги Exel?
Ну, да через оболочку она это делает, но ведь для этого она требует, что бы в системе стояли драйвера Microsoft для чтения документов Office.
Вроде оператор Excel.Worlsheet.UsedRange еще никто не отменял.

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя