главная -> статьи -> уроки -> Взаимодействие HTML интерфейса с MSExcel.
 
Переехал на ased.dtn.ru

 
  Ввод исходных данныхОшибка при вводе исходных данных
Параметр1   Результат1 = Параметр1+Параметр2+Параметр3+Параметр4
Параметр2   Результат2 = Параметр1-Параметр2-Параметр3-Параметр4
Параметр3   Результат3 = Параметр1*Параметр2*Параметр3*Параметр4
Параметр4   Результат4 = Параметр1 / Параметр2
 
  Внимание! Данная версия урока предназначена для работы на локальной машине.
Необходимо скачать урок и файл urok2_3.xls (архив).
Разместите файл urok2_3.xls в каталоге С:\ASed.

  Итак, перед нами фрагмент учебного приложения. При нажатии на кнопку "Считать", данные из окон ввода направляются в MSExcel, обрабатываются по заданным правилам (urok2_3.xls), результаты обработки возвращаются в SPAN области результатов. Разберем механизм обеспечения этих процедур.
  Во первых, при загрузке файла осуществляется подключение MSExcel и открытие соответствующего файла (urok2_3.xls), для этого в теге BODY прописывается следующее:

<body bgcolor="#bbbbbb" text="#000000" topmargin="3" onLoad="onLoaded()"
onBeforeUpdate="close_ex()" onUnload="close_ex()">

  Обратите внимание, что обрабатывается не только событие "загрузка", но и "перед обновлением", и "выгрузка" с вызовом соответствующих функций. Для подключения MSExcel используется "двухэтажная" обработка, т.е. сначала вызывается функция javascript, а из нее - VBScript. Но это совершенно необязательно, так написалось.

function onLoaded(){
document.all["voskl"].style.visibility="hidden";//дань первым урокам
conn_ex();
//setInterval("onTick()",500);
}

Далее фрагмент VBScript, где определены три фунции:
conn_ex() - создание обекта MSExcel и открытие файла;
calc_ex() - пересылка данных в MSExcel и возврат результатов обработки;
close_ex() - закрытие файла.
Код достаточно прозрачен и не требует пояснений, но обратите внимание на закомментированную строку:
'objExcel.Visible = True
Если снять символ комментария, то увидим рабочую книгу MSExcel.

<script language="VBScript">
Dim objExcel
Sub conn_ex()
On Error Resume Next
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Open("c:\ASed\urok2_3.xls")
'objExcel.Visible = True
End Sub

Sub calc_ex()
objExcel.Worksheets("Лист1").Range("a2")=param1.value
objExcel.Worksheets("Лист1").Range("a3")=param2.value
objExcel.Worksheets("Лист1").Range("a4")=param3.value
objExcel.Worksheets("Лист1").Range("a5")=param4.value
result1.innerHTML=objExcel.Worksheets("Лист1").Range("c2")
result2.innerHTML=objExcel.Worksheets("Лист1").Range("c3")
result3.innerHTML=objExcel.Worksheets("Лист1").Range("c4")
result4.innerHTML=objExcel.Worksheets("Лист1").Range("c5")
End Sub

Sub close_ex()
objExcel.Workbooks("urok2_3.xls").Close
End Sub

</script>

  Как видите, обмен между интерфейсной частью и обработчиком данных, в качестве которого используется MSExcel, организуется довольно просто, но за этой простотой скрывается масса новых возможностей, которые определят совершенство вашего приложения, простоту подготовки отчетов и т.д., и т.п.
   
  © 2002-2004   Сединко А.М.
  © 2004 design by   kir
Hosted by uCoz