Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > ASP.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2015, 11:53   #1
Votmax
 
Регистрация: 14.01.2015
Сообщений: 3
По умолчанию ASPX VBS и Excel

Добрый день!
Пытаюсь подружить свое web-приложение с excel, чтобы выводить результаты запросов пользователей не только в HTML виде.

Вот моя тестовая страничка hello.aspx:

Код:
<html>
<head>
<title> Пример </title>
</head>
<body bgcolor="#FFFFFF" text="#000000" >
<SCRIPT LANGUAGE="VBScript" SRC="my.vbs"SCRIPT>
</body>
</html>
Сам my.vbs:

Код:
dim app
set app = createobject("Excel.Application")
app.Visible = true
app.UserControl = true
Excel открывается, все прекрасно, могу делать что угодно, примеров куча.
Но этот скрипт выполняется на машите клиента, а я хочу, чтобы на сервере, я тогда в описание скрипта вписываю фразу RUNAT="Server". После этого появляются ошибки:

BC30188: Ожидалось объявление.
На строку: set app = createobject("Excel.Application")

Я пробовал оформить все как aspx:

Код:
<%@ Page Language="VBScript" Debug="true" aspcompat=true runat="server"%>
<html>
<head>
<title> Displaying An Excel Spreadsheet in an Web Page </title>
</head>
<body bgcolor="#FFFFFF" text="#000000">

<% 
dim app
set app = createobject("Excel.Application")
app.Visible = true
app.UserControl = true
  %>

</body>
</html>
Система ругается:
Операторы присваивания "Let" и "Set" больше не поддерживаются.
Убрал их, все сделал вот в таком виде:


Код:
<%@ Page Language="VBScript" Debug="true" aspcompat=true runat="server"%>
<html>
<head>
<title> Displaying An Excel Spreadsheet in an Web Page </title>
</head>
<body bgcolor="#FFFFFF" text="#000000">

<% 
dim app
app = createobject("Excel.Application")
app.Visible = true
app.UserControl = true
  %>

</body>
</html>
Появляется ошибка:
Не удалось создать компонент ActiveX.
На строку: app = createobject("Excel.Application")

В общем приплыл к той же ошибке.
Я работаю не в Visual Studio, знаю что там как то подключается к проекту библиотека MS Office, я работаю в простом блокноке, IIS 7.
Не знаю как быть, подскажите, пожалуйста.
Votmax вне форума Ответить с цитированием
Старый 14.01.2015, 12:19   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не очень понял в чем проблема, и я не особо по VB и ASP.NET, однако смешивание логики с версткой явно плохая идея. Посмотрите на MVC и т.п.

Кстати, а у вас Excel-то стоит вообще на сервере? Такой метод работы с ним (COM) требует его наличия.
Если вам не нужна поддержка старого формата, а только нового (2007+, xlsx), то там формат более открытый, OpenXML, и есть куча сторонних библиотек не требующих установленного экселя для создания/редактирования/чтения его файлов.


UPD:
Цитата:
Сообщение от Votmax Посмотреть сообщение
Код:
app.Visible = true
Или что вы хотите вообще? Не только файл отдать, а еще и целый эксель показать что ли?оО
Так не получится.



Цитата:
Я работаю не в Visual Studio
Почему?
Если вопрос в цене, то есть Express бесплатная, даже для коммерческого использования.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 14.01.2015 в 13:53.
Alex11223 вне форума Ответить с цитированием
Старый 14.01.2015, 16:29   #3
Votmax
 
Регистрация: 14.01.2015
Сообщений: 3
По умолчанию

Excel на сервере стоит.

Цитата:
app.Visible = true
- это проба, но как я написал, затык случается на app = createobject("Excel.Application")

Цитата:
Visual Studio
- проект небольшой sql запрос и вывод, две строчки, один файл. Visual Studio кучу лишнего закидывает.

По факту нужно пользователю давать готовый файл (тоже две строчки), но его надо сначала подготовить, а Excel не врубается.
Votmax вне форума Ответить с цитированием
Старый 14.01.2015, 16:40   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Может быть это поможет.
http://stackoverflow.com/a/9722256/964478
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.01.2015, 13:26   #5
sauwork
Пользователь
 
Аватар для sauwork
 
Регистрация: 02.01.2015
Сообщений: 12
По умолчанию

Если речь о asp net (у него как раз aspx) , то это NET Framework , и никаких createobject там быть не может. - это совершенно другая платформа , а вы ее путаете с классическим asp.

см. OpenXML или различные его обертки под NET.
P/S Если нужно просто загрузить файл , то достаточно дать на него ссылку ну или через Response.Write выгрузить его содержимое.
почта: sauwork@yandex.ru , телега: @sauwork

Последний раз редактировалось sauwork; 15.01.2015 в 13:44.
sauwork вне форума Ответить с цитированием
Старый 15.01.2015, 13:52   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чего CreateObject? Вроде и в VB.NET такое есть, для COM.
http://msdn.microsoft.com/en-us/libr...=vs.90%29.aspx

Цитата:
Если нужно просто загрузить файл , то достаточно дать на него ссылку
Так наверно перед этим автору его надо сгенерировать.

Ну и да, как я и говорил обертки над OpenXML гораздо удобнее и не требуют установки офиса.
Если не нужен старый формат (xls).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 15.01.2015 в 13:56.
Alex11223 вне форума Ответить с цитированием
Старый 19.01.2015, 10:06   #7
Votmax
 
Регистрация: 14.01.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Может быть это поможет.
http://stackoverflow.com/a/9722256/964478
Да, спасибо, такое уже проделывал, но не помогло.


Так я тоже делал, выдает ошибку

Код:
BC30002: Тип "Microsoft.Office.Interop.Excel.Application" не определен.
Я кстати "аналоговый" и работаю просто в блокноте. Решил стать немного продвинутее, поставил VS2012 for WEB. Запустил свой код, все прошло на ура. Сохранил проект, импортировал его в IIS. Вылазит ошибка. Походу где то еще галку нужно поставить.

Пошерстил интернет, аналогичных вопросов много, но они заканчиваются выбором альтернативных решений.
Нашел для себя решение, работать не с excel, а с Scripting.FileSystemObject, можно в виде текстового файла сгенерировать хоть xml, хоть html, хоть excel старой версии.
Но нужно прогрессировать , буду смотреть OpenXML, большое спасибо!
Votmax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
csshtml в aspx shtandra ASP.NET 0 13.01.2015 19:55
Возможно ли построчно записывать данные в excel vbs? Dima_com Microsoft Office Excel 8 28.10.2013 19:17
VBS + Excel PrincNochi Microsoft Office Excel 5 29.03.2013 14:36
Авторизация на сайте с ASPX alexesuser Работа с сетью в Delphi 0 12.05.2011 12:46
Исправления сайта на aspx masse Фриланс 0 08.04.2011 15:38