Re[3]: Идентификация листа в Excel
От: yuriylsh  
Дата: 27.06.09 03:26
Оценка: +1
Здравствуйте, Ellin, Вы писали:

E>Есть xls файл. Я в один из его листов что-то написал программно. Отдал пользователям. Пользователи используют его через эксель (меняют данные в ячейках, меняют последовательнось листов, меняют названия листов... вообще-то они не так часто все это делают, но лучше застраховаться). И вот спустя некоторое время я опять беру программно это эксель и теперь мне нужно из того самого листа взять данные из определенной ячейки. Во как!


Я бы писал в Workbook.Tag Что-то вроде Sheet1$A1 ну или любой формат в зависимости от задачи, который ты распарсишь когда повторно файл приедет к тебе.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
Идентификация листа в Excel
От: Ellin Россия www.rsdn.ru
Дата: 26.06.09 10:01
Оценка:
Пусть есть Excel файл. Там есть листы, 10 штук. Пусть я копирую два листа. И мне, теперь, нужно их как-то пометить, чтоб отличать в дальнейшем. Как это можно сделать?
Может быть какие-то переменные можно определять, привязанные к листу? Вообщем любым советам был бы признателен... иначе я тут совсем закопался... все перепробовал...
Re: Идентификация листа в Excel
От: oleg.agafonov  
Дата: 26.06.09 11:21
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Пусть есть Excel файл. Там есть листы, 10 штук. Пусть я копирую два листа. И мне, теперь, нужно их как-то пометить, чтоб отличать в дальнейшем. Как это можно сделать?

E>Может быть какие-то переменные можно определять, привязанные к листу? Вообщем любым советам был бы признателен... иначе я тут совсем закопался... все перепробовал...

Достаточно сохранить лист в переменной, например так

using Excel = Microsoft.Office.Interop.Excel;
...
...
//workbook : Excel.Workbook
Excel.Worksheet sheet1 = workbook.Worksheets[1] as Excel.Worksheet;
...


Дальше работа с выделенным листом ведется с помощью переменной sheet1.
Re[2]: Идентификация листа в Excel
От: Ellin Россия www.rsdn.ru
Дата: 26.06.09 11:52
Оценка:
Здравствуйте, oleg.agafonov, Вы писали:

OA>Достаточно сохранить лист в переменной, например так

OA>
OA>using Excel = Microsoft.Office.Interop.Excel;
OA>...
OA>...
OA>//workbook : Excel.Workbook
OA>Excel.Worksheet sheet1 = workbook.Worksheets[1] as Excel.Worksheet;
OA>...
OA>

OA>Дальше работа с выделенным листом ведется с помощью переменной sheet1.

Намекаешь, что я не достаточно понятно описал?
Попробую еще раз. Есть xls файл. Я в один из его листов что-то написал программно. Отдал пользователям. Пользователи используют его через эксель (меняют данные в ячейках, меняют последовательнось листов, меняют названия листов... вообще-то они не так часто все это делают, но лучше застраховаться). И вот спустя некоторое время я опять беру программно это эксель и теперь мне нужно из того самого листа взять данные из определенной ячейки. Во как!
Re[3]: Идентификация листа в Excel
От: cvetkov  
Дата: 26.06.09 12:11
Оценка:
там есть какойто ид (или хидденИд). его пользователи тоже могут поменять, но они врядли найдут где это сделать
... << RSDN@Home 1.2.0 alpha 4 rev. 1227>>
Re: Идентификация листа в Excel
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.06.09 07:19
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Пусть есть Excel файл. Там есть листы, 10 штук. Пусть я копирую два листа. И мне, теперь, нужно их как-то пометить, чтоб отличать в дальнейшем. Как это можно сделать?

E>Может быть какие-то переменные можно определять, привязанные к листу? Вообщем любым советам был бы признателен... иначе я тут совсем закопался... все перепробовал...
В Екселе есть Named Ranges. Не знаю, где оно через API, а в самом екселе их видно через Name Manager. Создать имя в екселе очень легко — достаточно выделить нужный диапазон, и написать нужное имя там, где обычно показан адрес текущей ячейки. А вот убить это имя уже сложнее, и знают как это сделать только очень продвинутые пользователи.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Идентификация листа в Excel
От: Ellin Россия www.rsdn.ru
Дата: 30.06.09 07:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>В Екселе есть Named Ranges. Не знаю, где оно через API, а в самом екселе их видно через Name Manager. Создать имя в екселе очень легко — достаточно выделить нужный диапазон, и написать нужное имя там, где обычно показан адрес текущей ячейки. А вот убить это имя уже сложнее, и знают как это сделать только очень продвинутые пользователи.

Да. я пробовал такую возможность. Однако если мне нужно идентифицировать два листа я никак не могу определить к какому Named Ranges какой из листов относится... т.е. с листом связи никак не могу найти...
Re[2]: Идентификация листа в Excel
От: _FRED_ Черногория
Дата: 30.06.09 07:56
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>А вот убить это имя уже сложнее, и знают как это сделать только очень продвинутые пользователи.


http://blogs.msdn.com/excel/archive/2005/10/21/483661.aspx
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Идентификация листа в Excel
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.06.09 09:17
Оценка:
Здравствуйте, Ellin, Вы писали:
E>Да. я пробовал такую возможность. Однако если мне нужно идентифицировать два листа я никак не могу определить к какому Named Ranges какой из листов относится... т.е. с листом связи никак не могу найти...
Почему? Неужто свойство Range.Worksheet отменили?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.