Vologd 21 / 19 / 12 Регистрация: 03.11.2013 Сообщений: 866 |
||||
1 |
||||
18.12.2013, 22:38. Показов 10405. Ответов 14 Метки нет (Все метки)
В названии темы указана ошибка.
Все остальные эдиты работают нормально. Если убрать эдит28 то программа идет норм. Добавлено через 2 минуты Бился пол часа, а тут осенила) может кому пригодится, дак оставлю)))
0 |
Antoha5101 0 / 0 / 0 Регистрация: 02.04.2014 Сообщений: 27 |
||||
26.04.2014, 21:05 |
2 |
|||
у меня та же проблема выделяет С40 и всё тут
0 |
droider 4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
||||
26.04.2014, 21:24 |
3 |
|||
Antoha5101, Вы неправильно присваиваете значение диапазону. Надо
и т.д.
0 |
0 / 0 / 0 Регистрация: 02.04.2014 Сообщений: 27 |
|
26.04.2014, 21:30 |
4 |
droider, Да же поменяв на xls.Range[‘С40’].Value :=Edit1.Text; ошибка выскакивает та же. остальные Edits работают нормально, если этот отключить.
0 |
4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
|
26.04.2014, 21:32 |
5 |
выделяет С40 а у Вас латинская «C» прописана? Добавлено через 1 минуту
0 |
0 / 0 / 0 Регистрация: 02.04.2014 Сообщений: 27 |
|
26.04.2014, 21:43 |
6 |
droider, «С» латинская. прописал все edit по вашей рекомендации всё один ответ((
0 |
4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
|
26.04.2014, 21:51 |
7 |
Antoha5101, выложите сообщение компилятора об ошибке при указании на эту строчку
0 |
0 / 0 / 0 Регистрация: 02.04.2014 Сообщений: 27 |
|
26.04.2014, 22:04 |
8 |
droider, компилятор да же не выскакивает. а картинку ошибки почему то не даёт отправить(( Добавлено через 2 минуты
0 |
4884 / 2756 / 849 Регистрация: 04.10.2012 Сообщений: 10,054 |
|
26.04.2014, 22:08 |
9 |
компилятор да же не выскакивает компилятор никуда выскакивать не должен Он должен указать текст в сообщении об ошибке.
подскажите как картинку прикрепить На будущее. Картинки, архивы и пр. прикрепляются к сообщению через «Расширенный режим» в окне сообщения. Там уже на панели инструментов будет значок скрепки.
0 |
0 / 0 / 0 Регистрация: 02.04.2014 Сообщений: 27 |
|
26.04.2014, 22:37 |
10 |
droider, вот такое выдаёт Миниатюры
0 |
21 / 19 / 12 Регистрация: 03.11.2013 Сообщений: 866 |
|
27.04.2014, 12:49 [ТС] |
11 |
А в самом экселе у этой ячейки числовой формат?! Я подзабыл конечно, давно делфи не открывал) Но там тоже может ошибка возникать. Добавлено через 6 минут
0 |
fatal error 136 / 128 / 29 Регистрация: 10.04.2012 Сообщений: 357 |
|
27.04.2014, 12:50 |
12 |
Проще проект приложить с екселевским файлом.
0 |
Volhv 0 / 0 / 0 Регистрация: 15.11.2012 Сообщений: 124 |
||||
23.05.2016, 13:06 |
13 |
|||
У меня выдает такую же ошибку
Не могу понять в чем дело. Добавлено через 24 минуты
xlSheet.Cells(I,1).Value
0 |
21 / 19 / 12 Регистрация: 03.11.2013 Сообщений: 866 |
|
23.05.2016, 15:03 [ТС] |
14 |
Может попробовать число в строку перевести? inttostr(i)
0 |
0 / 0 / 0 Регистрация: 15.11.2012 Сообщений: 124 |
|
24.05.2016, 10:46 |
15 |
Может попробовать число в строку перевести? inttostr(i) Если бы все было так просто. Мне нужно значение ячейки записать а таблицу
0 |
|
|
|
Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Соблюдайте общие правила форума
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как «свернуть» программу в трей.
3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры — внедрение в удаленное адресное прстранство)
… (продолжение следует) …
Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка — 60 дней. Последующие попытки — бан.
Мат в разделе — бан на три месяца…
Полезные ссылки:
MSDN Library FAQ раздела Поиск по разделу Как правильно задавать вопросы
Выразить свое отношение к модераторам раздела можно здесь: Rouse_, Krid
Delphi и Excel 2007
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Здравствуйте!
VSheet3.ChartObjects[2].Chart.SetSourceData( VSheet2.Range[VSheet2.Cells[countshop + 5,4], VSheet2.Cells[countshop + 5,RowItogo-1]], xlRows); но в 2007 ругается, что что Член группы не найден Подскажите пожалуйста в чём проблема и как её решить. Заранее признателен |
RuSA |
|
Фактически здесь три COM-вызова.
{ var X1, X2: OleVariant; } X1 := VSheet2.Range[VSheet2.Cells[countshop + 5,4]; X2 := VSheet2.Cells[countshop + 5,RowItogo-1]; VSheet3.ChartObjects[2].Chart.SetSourceData( X1, X2, xlRows); Возможно индекс неверен или что-либо из этой серии. Добавлено 28.12.07, 14:08
X1 := VSheet2.Cells[countshop + 5,4]; X1 := VSheet2.Range[ X1 ]; |
ScoobyDoo |
|
Уважаемый RuSA!
X1 := VSheet2.Range[ X1 ]; OLE error 800A03EC подскажите пожалуйста как это исправить…в 2003 офисе же работает Добавлено 29.12.07, 06:24 |
Galiaf |
|
ребята если я не ошибаюсь то 2007 очень сильно отличается от 2003 даже форматы файлов не совместимы… |
RuSA |
|
Цитата Galiaf @ 29.12.07, 07:12 ребята если я не ошибаюсь то 2007 очень сильно отличается от 2003 даже форматы файлов не совместимы…
Похоже. |
jack128 |
|
M lidhen |
onyx |
|
lidhen, по окуратнее на поворотах! Новую тему создать, неужели так сложно? |
DimaBy |
|
Цитата Galiaf @ 29.12.07, 07:12 ребята если я не ошибаюсь то 2007 очень сильно отличается от 2003 даже форматы файлов не совместимы…
Не очень он отличается. Писал приложение, формирующее отчет в Excell. Отчет довольно серьезный. А кроме этого всё форматирование хранится не в отдельном шаблоне, а создается программно (знаю, извращение, но тогда так надо было) . Добавлено 21.01.08, 07:38
X1 := VSheet2.Cells[countshop + 5,4]; X1 := VSheet2.Range[ X1 ]; лучше использовать вот это
X1 := VSheet2.Cells[countshop + 5,4]; X1 := VSheet2.Range[ X1,X1 ]; Я вообще не знаю, как с одним аргументом работало. |
ScoobyDoo |
|
Цитата ScoobyDoo @ 28.12.07, 07:53 Здравствуйте!
VSheet3.ChartObjects[2].Chart.SetSourceData( VSheet2.Range[VSheet2.Cells[countshop + 5,4], VSheet2.Cells[countshop + 5,RowItogo-1]], xlRows); но в 2007 ругается, что что Член группы не найден Подскажите пожалуйста в чём проблема и как её решить. Заранее признателен это проблема решилась просто…надо было только у ChartObjects[2] квадратные скобки заменит на круглые. дальше возникла следующая проблема:
v5 := v1.Range[v1.Cells[HomeRow-1,HomeColumn], v1.Cells[HomeRow-1,Column-1]]; for i := 1 to 5 do begin Form1.App.Charts[i].SeriesCollection.[B]Item[1][/B].XValues := v5; Form1.App.Charts[i].HasLegend := False; end; этот отрывок кода выдаёт ту же ошибку Член группы не найден. Путём разбиения определил, что ругается именно на выделенный жирным Item[1]. Где то в инете увидел, что можно использовать без итема следующим образом
Form1.App.Charts[i].SeriesCollection(1).XValues := v5; но так же в случае круглых скопок ошибка не совпадения типов, а при [] — неверный член группы. Помогите, пожалуйста, решить эту проблему. Опять же в 2003 офисе исходный код работает. |
ScoobyDoo |
|
Помогите пожалуйста решить эту проблему |
ScoobyDoo |
|
Неужели никто из знающих не читает эту ветку? уже не знаю что можно попробовать |
RuSA |
|
Цитата ScoobyDoo @ 01.02.08, 08:35 Помогите пожалуйста решить эту проблем Уже отвечали — например, см. сообщ. #5 |
ScoobyDoo |
|
Цитата RuSA @ 06.02.08, 01:25 Цитата ScoobyDoo @ 01.02.08, 08:35 Помогите пожалуйста решить эту проблем Уже отвечали — например, см. сообщ. #5 ну я и следовал первому пункту в 5м посте…при редактировании макроса тоже самое нормально работает…а в дельфие нет |
RuSA |
|
Цитата ScoobyDoo @ 29.01.08, 06:55 … в случае круглых скопок ошибка не совпадения типов,
так надо проверить в каком месте несовпадение. Возможно некорректно присваивается значение для XValues !
{xV: OleVariant; } xV := Form1.App.Charts[i].SeriesCollection.Item(0).XValues; |
ScoobyDoo |
|
Цитата RuSA @ 06.02.08, 12:12 Цитата ScoobyDoo @ 29.01.08, 06:55 … в случае круглых скопок ошибка не совпадения типов,
так надо проверить в каком месте несовпадение. Возможно некорректно присваивается значение для XValues !
{xV: OleVariant; } xV := Form1.App.Charts[i].SeriesCollection.Item(0).XValues;
Извините, не понял…как проверить чтением?
Form1.App.Charts[i].SeriesCollection.[B]Item[1][/B].XValues := v5; Form1.App.Charts[i].HasLegend := False; и вставил
xV := Form1.App.Charts[i].SeriesCollection.Item(0).XValues;
— выдало ошибку что то типа неверной адресации.
xV := Form1.App.Charts[i].SeriesCollection.Item(1).XValues; — работает нормально, без ошибок…но что это даёт? |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Система, Windows API
- Следующая тема
[ Script execution time: 0,0850 ] [ 16 queries used ] [ Generated: 17.04.23, 08:43 GMT ]
← →
Антоныч ©
(2006-10-25 16:53)
[0]
Всем добрый день. Постоянно пишу программы на Delphi для работы с базами данных, все отчёты оформляю в Excel. И удобно, и заказчики довольны. Если возникают трудности, то действовую стандартно: записываю макрос в Excel, затем пишу то же самое в своей программе. Но сегодня возникли трудности. При определённых условиях потребовалось удалять из отчёта небольшую картинку. Сделал макрос в Excel:
ActiveSheet.Shapes(«Pozhar»).Delete
перенёс в Delphi:var
XLApp, WorkBk, WorkSheet: Variant;
....
XLApp:=CreateOLEObject("Excel.Application");
WorkBk:=XLApp.WorkBooks.Open(FileName);
WorkSheet:=WorkBk.Sheets[1];
...
WorkSheet.Shapes["Pozhar"].Delete
На последней строчке выскакивает ошибка «Член группы не найден». Стал пробовать по-другому, попробовал получить доступ к коллекции Shapes по индексу:
WorkSheet.Shapes[1].Delete
или
WorkSheet.Shapes.Item[1].Delete (что, в принципе, одно и то же) — всё таже ошибка. Единственное, что «схавал» Excel — это вернул общее количество картинок на листе через
kol:=Worksheet.Shapes.Count
и выделил их все:
Worksheet.Shapes.SelectAll
Выкрутился тем, что для удаления картинки запускаю макрос, но вопрос по-прежнему остался открытым: Почему не работает напрямую?
← →
MetalFan ©
(2006-10-25 19:34)
[1]
у меня эксель на удаление такой код придложилActiveSheet.Shapes("Picture 1").Select
Selection.Delete
попробуй — может прокатит?
← →
MetalFan ©
(2006-10-25 20:02)
[2]
у меня вот что прокатило:var
XLApp, WorkBk, WorkSheet, Shp: Variant;
begin
...
XLApp := GetActiveOleObject("Excel.Application");
WorkBk := XLApp.Workbooks[1];
WorkSheet:=XLApp.ActiveSheet;
Shp := WorkSheet.Shapes.Item(1);
Shp.Delete;
...
← →
Shirson ©
(2006-10-26 11:14)
[3]
Антоныч, просто нужно помнить что в отличии от Delphi, в екселевском VBA, доступ к членам коллекций осуществляется только через .item() и только с круглыми скобками.
← →
Антоныч ©
(2006-10-26 16:31)
[4]
MetalFan: Спасибо, помогло.
Однако вопрос всё-равно остался открытым. Например, Sheets — это тоже коллекция в Excel (так написано в help-e), и доступ осуществляется через квадратные скобки (см. как у меня выше). Только что попробовал написать WorkSheet:=WorkBk.Sheets.Item(1)
Вылетела та же ошибка: «Член группы не найден».
Shirson: В том же help-е написано, что свойство Item является у большинства коллекций используемым по-умолчанию, поэтому можно обращаться как через Item, так и без него (по типу TList в Delphi). Например, как коллекция Sheets. Такое ощущение, что к Shapes в данном случае слово «большинство» не относится
← →
MetalFan ©
(2006-10-26 16:48)
[5]
count проверяй… на всякий случай
Форум программистов Vingrad
Модераторы: MetalFan |
Поиск: |
|
Работа с Excel из Delphi, В цикле выделить диапазон ячеек… |
Опции темы |
DimassS |
|
||
Шустрый Профиль
Репутация: нет
|
Никак не могу программно выделить диапазон ячеек в Excel, помогите кто знает. Пока зациклился на этом:
|
||
|
|||
Albinos_x |
|
||
Evil Skynet Профиль
Репутация: 15
|
Это что? PS: пользуйтесь тегом [code=delphi] ——————— «Кто владеет информацией, тот владеет миром» |
||
|
|||
~FoX~ |
|
||
НЕ рыжий!!! Профиль
Репутация: 1
|
Range(‘A1:E11’).Select ———————
|
||
|
|||
Albinos_x |
|
||
Evil Skynet Профиль
Репутация: 15
|
к примеру у меня так работает без проблем:
AddresColExcel -> http://forum.vingrad.ru/index.php?showtopic=84634 Это сообщение отредактировал(а) Albinos_x — 12.4.2006, 08:54 ——————— «Кто владеет информацией, тот владеет миром» |
||
|
|||
Albinos_x |
|
||
Evil Skynet Профиль
Репутация: 15
|
это тоже не прокатит:
читай статью по указанной выше ссылке там всё подробно расписано, как работать с Excel… ——————— «Кто владеет информацией, тот владеет миром» |
||
|
|||
DimassS |
|
||
Шустрый Профиль
Репутация: нет
|
Всем большое, прибольшое спасибо!!!!! |
||
|
|||
|
Правила форума «Delphi: ActiveX/СОМ/CORBA» | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
Привожу, пару цитатт из справки Архангельского как работать с листами. Функцию копирования поищите как посоветовал Valico или же в хелпе к Вижуалбейсику в Excel-e
___________________________________
Класс сервера Excel
Модули Excel97, Excel2000, ExcelXP
Описание
Сервер COM класса TExcelApplication используется для управления из вашего приложения программой Excel. Сервер может использоваться в виде компонента, расположенного на странице Servers, или экземпляр сервера может создаваться программно во время выполнения. См. темы Работа с компонентами страницы библиотеки Servers, Работа с Microsoft Office как с серверами COM, в которых поясняется различие этих подходов, а также тему Адаптация к версии Microsoft Office, в которой рассмотрены вопросы адаптации приложения к версии Excel. Для работы со свойствами и методами серверов COM ознакомьтесь также с темой Обращение к свойствам и методам серверов COM.
Некоторые свойства и метода сервера вы можете найти по указанным выше ссылкам: Некоторые свойства и Некоторые методы. Методика получения информации по другим свойствам и методам изложена в теме Где найти свойства и методы серверов COM.
Среди множества свойств сервера следует отметить свойство ActiveWorkbook — активная рабочая книга Excel. Это объект ExcelWorkbook, реализующий интерфейс _Workbook и имеющий в свою очередь собственные свойства и методы.
Если в Excel открыто несколько книг, получить к ним доступ можно с помощью свойства Workbooks — собрания всех открытых в данный момент книг. Каждая книга представлена в этом собрании как объект ExcelWorkbook. К отдельной книге в массиве Workbooks можно обращаться по индексу. Например, ExcelApplication1.Workbooks – это книга, которая была открыта первой.
Создание новой книги ExcelWorkbook и включение ее в собрание Workbooks осуществляется методом Add объекта Workbooks.
Объект ExcelWorkbook в свою очередь имеет собрание листов Worksheets. К отдельному листу – объекту ExcelWorkSheet можно получить доступ по индексу, как и в собрании Workbooks. В объекте ExcelWorkbook имеется свойство ActiveSheet – активный лист книги.
Создание нового листа ExcelWorkSheet и включение его в собрание Worksheets осуществляется методом Add объекта Worksheets.
Можно не создавать в приложении отдельных объектов для книги и листа, а работать с книгами и листами непосредственно через объект сервера. Но обычно все-таки удобнее создать такие объекты. В этом случае код получается более компактным и наглядным.
Создание объектов может выполняться тремя способами: с помощью компонентов страницы Servers, с помощью программного создания соответствующих объектов, и с помощью создания объектов интерфейсов.
При использовании компонентов вы должны поместить на форме компоненты TExcelWorkbook – рабочая книга, и – TExcelWorksheet – лист. Программное создание таких объектов, а заодно и программное создание объекта сервера, может выглядеть так:
var ExcelApplication1: TExcelApplication;ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorkSheet;
...
// Создание объектов
ExcelApplication1 := TExcelApplication.Create(Self);
ExcelWorkbook1 := TExcelWorkbook.Create(Self);
ExcelWorksheet1 := TExcelWorkSheet.Create(Self);
... // Использование объектов
// Удаление объектов
ExcelApplication1.Free;
ExcelWorkbook1.Free;
ExcelWorksheet1.Free;
Остальное не зависит от того, используются компоненты или программно созданные объекты. Подключение объектов книги и листа к активной книге и листу сервера выполняется методом ConnectTo
, аргументом которого указывается объект сервера. Например:
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);
ExcelWorksheet2.ConnectTo(
ExcelWorkbook2.ActiveSheet as ExcelWorksheet);
Во втором операторе используется операция as, чтобы привести интерфейс к требуемому типу.
Следующий оператор создает новую книгу и подключает к ней объект ExcelWorkbook1:
[/code]
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(
EmptyParam, LOCALE_USER_DEFAULT));
Тут использован метод Add объекта ExcelApplication1.Workbooks.
Несколько иначе выглядит работа с объектами интерфейсов:
var ExcelApplication1: TExcelApplication;
ExcelWorkbook1: ExcelWorkbook;
ExcelWorksheet1: ExcelWorkSheet;
...
ExcelApplication1 := TExcelApplication.Create(Self);
...
ExcelWorkbook1 := ExcelApplication1.Workbooks.Add(
EmptyParam, LOCALE_USER_DEFAULT);
ExcelWorksheet1 := ExcelWorkbook1.ActiveSheet;
Тут не требуется метод ConnectTo. Соответствующим переменным просто присваиваются значения интерфейсов объектов сервера.
Сервер Excel имеет также свойство Windows – коллекцию открытых окон. Метод Windows.Arrange позволяет упорядочить окна. Элементы Window коллекции Windows обеспечивают доступ к свойствам, описывающим отображение документа: свернутое, развернутое, разделенное, заголовок окна, полосы прокрутки.
Сервер Excel имеет свойство Dialogs, являющееся собранием объектов Dialog, которые соответствуют встроенным диалогам Word. Доступ к конкретному диалогу осуществляется через выражение вида
WordApplication1.Dialogs[WdWordDialog]
где константа WdWordDialog может принимать одно из предопределенных значений.
[/code]
У объекта книги ExcelWorkbook сервера Excel TExcelApplication имеется свойство Worksheets - собрание листов книги. Каждый лист представлен в этом собрании как объект ExcelWorksheet.Worksheets - это объект (точнее, интерфейс Sheets), имеющий ряд свойств и методов. К конкретному листу из коллекции Worksheets можно обращаться по индексу или по имени. Например, следующие операторы открывают и активизируют первый лист книги, представленной объектом ExcelWorkbook1, передают указатель на этот лист в переменную интерфейса ExcelWorksheet1 и активизируют лист, т.е. выдвигают его на первый план в окне Excel:
[code]
ExcelWorksheet1 := ExcelWorkbook1.Worksheets[1] as
ExcelWorksheet;
ExcelWorksheet1.Activate(LOCALE_USER_DEFAULT);
Свойство Worksheets имеется также в объекте сервера. Это свойство относится к активной книге. Так что следующий оператор производит операции с активной книгой, открывая в ней лист, имя которого (например, «Лист1») задано в окне редактирования Edit1:
ExcelWorksheet1 := ExcelApplication1.
Worksheets[Edit1.Text] as ExcelWorksheet;
ExcelWorksheet1.Activate(LOCALE_USER_DEFAULT);
Если лист с заданным именем отсутствует в книге, будет генерироваться исключение. Так что если имеется подобная опасность, это исключение надо перехватить, например, следующим образом:
[/code]
try
ExcelWorksheet1 := ExcelApplication1.
Worksheets[Edit1.Text] as ExcelWorksheet;
ExcelWorksheet1.Activate(LOCALE_USER_DEFAULT);
except
ShowMessage(‘Не удалось открыть лист «‘ + Edit1.Text + ‘»‘);
end;
[/code]
Добавить новый лист в книгу можно методом Add объекта Worksheets:
function Add(Before: OleVariant; After: OleVariant;
Count: OleVariant; Type_: OleVariant;
lcid: Integer): IDispatch;
Параметры Before или After – это объект листа, перед которым или после которого осуществляется вставка. Обычно достаточно задать только один из этих параметров, а другой сделать равным EmptyParam. Если оба параметра равны EmptyParam, то новые листы вставляются перед текущим активным листом. Параметр Count указывает число вставляемых листов. Если этот параметр равен EmptyParam, то вставляется один лист. Параметр Type_ определяет тип вставки. При значении EmptyParam вставляется новый пустой лист.
Например, следующий код вставляет один новый лист перед активным листом активной книги и передает указатель на него в переменную ExcelWorksheet1:
ExcelWorksheet1 := ExcelApplication1.Worksheets.Add(
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, LOCALE_USER_DEFAULT) as ExcelWorksheet;
А следующий код вставляет два новых листа после третьего листа активной книги:
var After, Num: OleVariant;
...
After := ExcelApplication1.Worksheets[3];
Num := 2;
ExcelWorksheet1 := ExcelApplication1.Worksheets.Add(
EmptyParam,After,Num,EmptyParam,
LOCALE_USER_DEFAULT) as ExcelWorksheet;
Удалить лист из книги можно методом Delete:
ExcelWorksheet1.Delete(LOCALE_USER_DEFAULT);