Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с "Excel.Application" / 11 сообщений из 11, страница 1 из 1
13.04.2004, 23:49
    #32480082
Artur Muradian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
Привет Коллегам.

Уважаемые, вот с чем сталкнулся:

Excel.Application ExApp;
ExApp= (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
Excel.Workbook book= ExApp.Workbooks["Sheet1"];

Дает "Invalid index".

От чего может быть? Использую .NET 1.0 и Office XP.
...
Рейтинг: 0 / 0
14.04.2004, 09:28
    #32480291
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
посмотрите поиском по форуму как с Excel\'om работать в .Net, тут уже мнго было всего написано на эту тему, например - \r
\r
/topic/74487
...
Рейтинг: 0 / 0
15.04.2004, 00:57
    #32481944
Artur Muradian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
Спасибо за ссылку, пример довольно хороший. Но есть один момент, ведь в примере создаеться новый excel.application. Это и у меня получается:), правда ничего серезного я не делал этим вариантом.
А мне надо, что в рабочем эксельовском процессе я мог добавлять/изменять какие то ceels. Но

Excel.Application ExApp;
ExApp= (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
Excel.Workbook book= ExApp.Workbooks["Sheet1"];

как я уже сказал дает "Invalid index".

Так в чем же дело?
Значит так: врэппер создает студия 2002 (для excel10), те я не использовал tlbimp.exe; .net 1.0; win2000; office xp
...
Рейтинг: 0 / 0
15.04.2004, 07:51
    #32482039
Артем1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
А так?
Код: plaintext
1.
2.
Excel.Workbook book = ExApp.Workbooks[ "Workbook1" ]; 
или
Excel.Workbook book = ExApp.Workbooks[ 0 ];
...
Рейтинг: 0 / 0
15.04.2004, 13:11
    #32482613
Artur Muradian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
Дело в том, что я пробовал не только
ExApp.Workbooks["Sheet1"], но и
ExApp.Workbooks[0] и
ExApp.Workbooks["[Sheet1]"] и
ExApp.Workbooks["[Sheet1$]"] а только что попробовал и
ExApp.Workbooks["Workbook1"]

Ну и всегда: "Invalid index".
...
Рейтинг: 0 / 0
15.04.2004, 13:55
    #32482702
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
Артур, а вы добавляли его?

wbks = excApp.Workbooks;
wbk = wbks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
sheets = wbk.Worksheets;
worksheet = new Excel.Worksheet[sheetsCount+1];

например так?
...
Рейтинг: 0 / 0
15.04.2004, 14:14
    #32482751
Artur Muradian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
hDrummer, я программно не добавлял. Но я открываю xls файл (excel-ом) в котором точно есть Sheet1, и только тогда я тестирую прогу.
А после этого, что происходит Вам известно:)
...
Рейтинг: 0 / 0
15.04.2004, 14:36
    #32482816
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
Я не знаю в чем проблема, но я делал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
using System.Reflection; // For Missing.Value and BindingFlags
using System.Runtime.InteropServices; // For COMException
using Excel;

....................................................................................

private Excel.ApplicationClass exelApp = null;
private object objMissing = System.Reflection.Missing.Value;

....................................................................................
System.Windows.Forms.OpenFileDialog objExcelFileDialog;
objExcelFileDialog = new System.Windows.Forms.OpenFileDialog();
objExcelFileDialog.Multiselect = false;
objExcelFileDialog.Title =  "Выберете файл для конвертирования данных" ;
objExcelFileDialog.Filter =  "Таблицы Excel (*.xls)|*.xls" ;
if(objExcelFileDialog.ShowDialog() == DialogResult.OK)
{

	exelApp = new ApplicationClass();
	exelApp.Visible = true;
	Workbooks workbooks = exelApp.Workbooks;

	_Workbook workbook = workbooks.Open(objExcelFileDialog.FileName,objMissing,false,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing,objMissing);
	Sheets sheets = workbook.Worksheets;
	_Worksheet worksheet = (_Worksheet) sheets.get_Item( 1 );

	Range r1 = worksheet.get_Range( "A10" , Missing.Value);
	r1.CurrentRegion.Select();
	//Далее какая-то обработка.....................................
}

Надеюсь поможет ))
...
Рейтинг: 0 / 0
15.04.2004, 14:42
    #32482832
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
А Excel не русский случайно?
...
Рейтинг: 0 / 0
15.04.2004, 16:29
    #32483094
Artur Muradian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
Коллеги, Вы не поверите. Надо в место Sheet1 написать просто 1 (по крайней мере у меня так сработало), вот и все:)
Спасибо большое за помощь.
...
Рейтинг: 0 / 0
15.04.2004, 16:33
    #32483108
Artur Muradian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с "Excel.Application"
P.S. hDrummer, у меня стоит английский office. А что с русским будут проблемы?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с "Excel.Application" / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]