Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Таблица Excel Добавлено: 08.05.04 13:05  

Автор вопроса:  Seregahome
Не знаю, как подключить Excel через Data или Adodc. Может кто подскажет как это делается, буду особенно благодарен если покажете, как это делается через код и что при этом нужно включить в Referens -ах.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #1 Добавлено: 10.07.04 21:34
Необходимо подключить библиотеку - Excel 10.0 Object Library. Потом Dim objExcel As Excel.Application, перед работой Set appExcel = New Excel.Application, после работы - Set appExcel = Nothing, что делать во время работы смотри в книжках по VBA



Ответить

Номер ответа: 2
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #2 Добавлено: 11.07.04 06:35
Немного подробнее:
Для работы с Excel необходимо подключить библиотеку Excel 10.0 Object Library.
Для создания экземпляров Excel применяются специальные объекты:
а) WorkBook – для создания рабочей книги
б) WorkSheet – для каждого листа рабочей книги
Пример: создать новую книгу с одним листом. В данном примере книга создается на основе существующего шаблона с помощью метода Add, используется без аргументов.
Dim objExcel As Excel.Application
Set objExcel – New Excel.Application
objExcel.Visible = False
objExcel.SheetInNewWorkBook = 1
objExcel.WorkBook.Add (“путь к шаблону”)
Пример создание нового листа:
objExcel.WorkSheet.Add(до/после, количество)
Аргумент до/после – определяет положение нового листа в рабочей книге, если аргумент не указан то лист вставляется перед активным листом.
objExcel.WorkSheet.Add(After: = Sheet(1), Count: = 2)
Основным объектом для операций с листами является диапазон ячеек представленный объектом Range.
WorkSheet.Range(“A1 : D6”)
Диапазон ячеек можно задавать с помощью переменных, следовательно можно обрабатывать их в цикле.
для работы с конкретными ячейками используется коллекция Cells, объекта WorkSheet
With objExcel.ActiveSheet
.Cells(1,2).Value = “10”
.Cells(2,2).Value = “20”
.Cells(3,2).Value = “30”
.Range(“A3”) = “Сумма”
End With
Нумерация ячеек в коллекции Cells производится так же как и в двумерном массиве, ячейка (А1) имеет координаты (1,1), где первый аргумент номер строки, а второй номер столбца.
Методы Rows и Columns выделяют соответственно целую строку или целый столбец.
WorkSheet.Rows(3) – выделяется третья строка
WorkSheet.Columns(“D”) – выделяется столбец D
На листе можно создать выделенный объект и работать с его свойствами и методами через объект Selection, который создается методом Select объекта Range.
WorkSheet.Range(“A1 : D6”).Select
Команда создает новый объект, к которому можно обратиться по имени. Например для изменения свойств шрифта выделенного объекта нужно использовать свойство Font
WorkSheet.Selection.FontBold = True
WorkSheet.Selection.FontSize = 12
Пример создания нового листа в Excel и выполнения расчетов. Программа проверяет количество открытых книг, если их нет, то создается новая. Перед запуском Excel необходимо убедится в том, что нет работающих экземпляров Excel, поскольку приложение может переписать данные текущего рабочего листа.
Dim objExcel As Excel.Application
Dim wBook As WorkBook
Dim wSheet A s WorkSheet
Private Sub cmdSheet_Click()
Dim Expr As Variant
Set objExcel = New Excel.Application
   Expr = InputBox(“Введите выражение (например, “ & “1/cos(3.45)*Log(19.004)”)
If Trim(Expr) <> “” Then
If objExcel.WorkBooks.Count = 0 Then
Set wBook = objExcel.WorkBookc.Add
End if
Set wSheet = objExcel.Sheets(1)
On Error GoTo CalcEr
wSheet.Cells(1,1).Value = “=” & Expr
wSheet.Calculate
MsgBox “Значение” & Expr & vbCrLg & “равно” & _wSheet.Cells(1,1).Value
End if
Exit Sub
CalcErr:
MsgBox “Ошибка при вычислении выражения!”
End Sub

Передача в Excel информации из базы данных.
1. Все содержимое набора записей необходимо занести в двумерный массив типа Variant методом GetRows. Массив формируется следующим образом: каждая строка массива – это содержимое одного поля всех записей, каждый столбец = это содержимое одной строки.
Считывание всех записей в массив
avRows = rsName.getRows
RowCounr = UBound(avRows, 1) + 1
FieldsCount = UBound(avRows, 2) + 1
‘определение количества полей и записей, если в качестве второго параметра в функции UBound стоит 1, то возвращается количество строк, если 2 то возвращается количество столбцов
2. Создать ссылочную переменную для таблицы Excel
Set objExcel = CreateObject(“Excel.Application”)
objExcel.visible = True
objExcel.WorkBooks.Add
Есть несколько способов вывести рабочую книгу на экран:
а) GetObject( “Excel.Application”)
‘создается новый невидимый экземпляр Excel
б) GetObject(“”, “Excel.Application”)
‘создается новый видимый экземпляр Excel
в) GetObject(,”Excel.Application”)
‘возвращает ссылку на существующий экземпляр Excel, или завершает приложение с ошибкой
3. Поместить заголовки полей как заголовки столбцов
RowIndex = 1
ColIndex = 1
For ColIndex = 1 To FieldsCount
With objExcel.Cells(RowIndex, ColIndex)
.Value = rsName.Fields(ColIndex, -1).Name
.HorizontalAligment = xlCener
.VerticalAligment = xlcener
With .Font
.Name = “Arial”
.Bold = True
.Size = 10
End With
End With
Next ColIndex
4. Т. к. все записи из набора скопированы в массив, то набор записей можно закрыть
rsName.Closed
Set rsName = Nothing
5. Добавить данные из массива в таблицу
With objExcel
For RowIndex = 2 To RowCount + 1
For ColIndex = 2 To FieldsCount
.Cells(RowIndex, ColIndex).value = avRows(ColIndex, RowIndex)
Next ColIndex
Next RowIndex
End With
6. Установить ширину столбцов по ширине самого длинного элемента
objExcel.Cells(1,1).CurentRegeon.EntireColumn.AutoFit

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам