powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / WebApplication =>> Excel
12 сообщений из 12, страница 1 из 1
WebApplication =>> Excel
    #34155377
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Может кто подскажет?
Есть WA, есесно на ней DataGrid находится :)
Как можно со страницы запустить Excel и передать в него инфу из DG?
На VB такое можно сделать, но как на C#???
P.S.: необходимо именно открыть процесс Excel, а не просто в выходной поток сливать итнфу из DG... :)
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34155521
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели никто не знает... :(
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34156571
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165681
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не работает у меня...
если кому не влом, напишите точно как сделать
задача: открыть Excel прямо с web-формы и засунуть туда данные из DataGrid, а не сохранять в файл и пересылать юзеру и не открывать этот файл Excel-ом в окне IE, а ИМЕННО ОТКРЫТЬ EXCEL!
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165727
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<OFF>
LOL - порой встречаются ТАКИЕ вопросы, над которыми сидишь и думаешь - долго, долго...
толи программер чего-то недопонимает, то-ли сам отстал от жизни лет на n-дцать...
</OFF>
по теме:
а как ты себе представляешь этот процесс!!!???
вот у меня на компе не установлен excel... как быть? что ты будешь с сервера пытаться у меня открыть и куда будешь заливать инфу!!!??? + лично я убил бы MS если бы было так легко с сервака по http протоколу запускать проги МОЕГО компа без моего ведома... (есть подозряна, что я в этом не одинок ;)
+ даже если и есть такая возможность (хотя очень сомневаюсь), работать нужно с клиентским скриптом, который считает страницу полученную клиентом (волшебным образом вынет данные из DG ;) и влезет в процесс клиентского excel, занеся туда данные... ;)
P.S. если получиться - обязательно отпиши - давно не видел таких ФАНТАСТИЧЕСКИХ релизов... ;)
P.P.S. авторНа VB такое можно сделать, но как на C#???

да, кстати ;) - а как это сделать на VB? - дико интересно...?
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165739
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
щас кину код на vb, чтобы не быть голословным
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165740
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sub ExportExcel
    
    On Error Resume Next
    Set appl = CreateObject("Excel.Application")
    if Err.Number=429 then    
         msgbox "Невозможно создать объект Excel. " + chr(13)+chr(10) + _
            "Вам нужно изменить свойства Internet Explorer, а именно проделать следующее:" + chr(13)+chr(10) + _
            "Меню Сервис -> Свойства обозревателя -> Безопастность ->" + chr(13)+chr(10) + _
            "Зона интернет -> кнопка Другой -> Элементы ActiveX и модули подключения ->" + chr(13)+chr(10) + _
            "установить флажок для поля Использование элеменов ActiveX " + chr(13)+chr(10) + _
            "не помеченных как безопастные в положение Разрешить" + chr(13)+chr(10)

    else
    Set twb = appl.Workbooks.Add()
    
    Dim tmp, i, j
    tmp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    For i = 0 To 600
    If i > 25 Then snab(i) = Trim(Mid(tmp, i \ 26, 1)) Else snab(i) = ""
        snab(i) = snab(i) + Mid(tmp, i Mod 26 + 1, 1)
    Next

    appl.ScreenUpdating = False
    twb.Sheets(1).Activate
    twb.Sheets(1).Application.Range(b(excel_freeze_column,3)).Activate
    appl.ActiveWindow.FreezePanes = True
    
    Dim tttt
    ReDim tttt(y_size,x_size)    
    
    Dim RegX
    Set RegX=new RegExp
    RegX.Pattern=chr(13)
    RegX.Global=True    
    
    For i = 0 To x_size-1    
     twb.Sheets(1).Range(b(i+2, 1)).EntireColumn.ColumnWidth=CLng(Mid(document.all("header"+Trim(CStr(i+1))).style.width,1,instr(1,document.all("header"+Trim(CStr(i+1))).style.width,"px")-1)/7)
     twb.Sheets(1).Range(b(i+2, 1)).EntireColumn.IndentLevel = 1    
     tttt(0,i) = RegX.Replace(document.all("header"+Trim(CStr(i+1))).innerText,"")
    Next
    
    RegX.Pattern=","
    RegX.Global=True    
    For i = 0 To x_size-1    
        For j = 1 To y_size-1
            tttt(j,i) = RegX.Replace(CStr(document.all("field"+Trim(CStr(j))+"_"+Trim(CStr(i+1))).innerText),".")
        next
    next

    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2+y_size-1)).NumberFormat="@"
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2+y_size-1))=tttt
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2)).WrapText = True
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2)).VerticalAlignment=2
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2)).HorizontalAlignment=3
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2)).Interior.Color=&HDDDDFF
    twb.Sheets(1).Range(b(2, 2)).EntireRow.RowHeight=twb.Sheets(1).Range(b(2, 2)).EntireRow.RowHeight*2
    twb.Sheets(1).Range(b(1, 1)).EntireRow.RowHeight=4
    twb.Sheets(1).Range(b(1, 1)).EntireColumn.ColumnWidth=0.5
    With twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2+y_size-1)).Borders
    .ColorIndex = 16
    .Weight = 2
    .LineStyle = 1
    End With
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2+y_size-1)).Font.Size=8
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2+y_size-1)).BorderAround 1,3
    twb.Sheets(1).Range(b(2, 2)+":"+b(2+x_size-1, 2)).BorderAround 1,3
    
    appl.ScreenUpdating = True
    appl.Visible=True
    End if
    
End Sub
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165759
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. автор msgbox "Невозможно создать объект Excel. " + chr(13)+chr(10) + _
"Вам нужно изменить свойства Internet Explorer, а именно проделать следующее:" + chr(13)+chr(10) + _
"Меню Сервис -> Свойства обозревателя -> Безопастность ->" + chr(13)+chr(10) + _
"Зона интернет -> кнопка Другой -> Элементы ActiveX и модули подключения ->" + chr(13)+chr(10) + _
"установить флажок для поля Использование элеменов ActiveX " + chr(13)+chr(10) + _
"не помеченных как безопастные в положение Разрешить" + chr(13)+chr(10)

ещё раз повторюсь - неустановлен у меня на компе excel ;) так что этот месседж мне побоку - или есть задумка подгрузить и установить excel мне на комп с твоего сервера!?

2.
И FrameWork у меня на компе ТОЖЕ не установлен :) так что запихнуть всю эту шняжку на шарповиче в страницу (или отдельную .dll с последующим вызовом на клиенте клиентским скриптом) и выполнить код НА МОЁМ КОМПЕ у тебя тоже нет шансов ;)

Единственное, как я и говорил, есть шанс запарить всю эту байду на javascript - но сдаётся мне что считать со страницы у клиента данные из таблицы (а именно так GV и называется на клиенте ;) а потом перенести это в процесс excel дело непростое (до сих пор склонен думать невыполнимое так как нет у меня excel на компе ;)
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165779
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача "чтобы работало везде" - не стоит. Есть предположения как сделать просто копию того, что я привёл на VB на C#? :)
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165930
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно, я предпологал, что этим всё закончится ;)))
задача для разминки мозга
к каким языкам (для webAPP) относятся эти группы?
1. C# VB.NET J# Java
2. javascript vbscript
подсказка ;)
1. языки серверных сценариев - выполняются исключетельно на стороне сервера...
2. языки клиентских сценариев - выполняются исключительно на клиенте...
P.S. когда твоя голова осознает эти отличия, тогда настанет спокойствие и умиротворённость и, всё у тебя получится ;)
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34165932
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monticora
задача: открыть Excel прямо с web-формы и засунуть туда данные из DataGrid, а не сохранять в файл и пересылать юзеру и не открывать этот файл Excel-ом в окне IE, а ИМЕННО ОТКРЫТЬ EXCEL!

Тогда JS Вам в руки (правда, это M$ Word, но не суть важно) и это будет M$ IE only:
Код: plaintext
\n<html>\n  <head>\n    <title>Test M$ Word</title>\n<script type="text/javascript">\n<!--\nfunction TestCOM()\n{\n   var\n     oFS=null,\n     SignatureDoc="E:\\\\Soft.src\\\\JavaScript\\\\Test\\\\COM\\\\Word_tst.doc",\n     OutputDoc="E:\\\\Soft.src\\\\JavaScript\\\\Test\\\\COM\\\\Word_out.doc",\n     MSWordExists,\n     OpenOfficeOrgExists,\n     MSWord=null,\n     Document=null,\n     Bookmarks=null,\n     wdGoToBookmark=- 1 , // 0xFFFFFFFF\n     wdGoToFirst= 1 ,\n     wdGoToAbsolute= 1 ,\n     BookmarkName="MyBookmark",\n     TEST_BOOKMARK_BY_BOOKMARKS_COLLECTION=false,\n     Bookmark;\n\n   if(!(oFS=new ActiveXObject("Scripting.FileSystemObject")))\n   {\n      alert("!Scripting.FileSystemObject");\n      return;\n   }\n\n   if(!oFS.FileExists(SignatureDoc))\n   {\n      alert("!FileExists");\n      return;\n   }\n\n   try\n   {\n      MSWord=new ActiveXObject("com.sun.star.ServiceManager");\n      OpenOfficeOrgExists=true;\n   }\n   catch(Exception)\n   {\n      alert(Exception.name+": "+Exception.message);\n      alert(MSWord);\n      OpenOfficeOrgExists=false;\n   }\n\n   MSWord=null;\n   //alert( 1 );\n   //MSWord=GetObject("e:\\\\Test1.doc","Word.Application");\n   //alert( 2 );\n   //\n   // PRB: Cannot Call GetObject from Script in IE to Access Running Object\n   // http://support.microsoft.com/kb/q239470/\n   //\n\n   if(!MSWord)\n   {\n      try\n      {\n         MSWord=new ActiveXObject("Word.Application");\n         MSWordExists=true;\n      }\n      catch(Exception)\n      {\n         alert(Exception.name+": "+Exception.message);\n         MSWordExists=false;\n      }\n   }\n\n   if(!MSWord)\n   {\n      alert("!Word.Application");\n      return;\n   }\n\n   MSWord.Visible=true;\n\n   if(!(Document=MSWord.Documents.Open(SignatureDoc)))\n   {\n      alert("!Document");\n      return;\n   }\n\n   Document.PageSetup.TopMargin=MSWord.CentimetersToPoints( 10 );\n\n   if(!(Bookmarks=Document.Bookmarks))\n   {\n      alert("!Bookmarks");\n      return;\n   }\n\n   //alert("Bookmarks.Count="+Bookmarks.Count);\n   if(Bookmarks.Exists(BookmarkName))\n   {\n      if(TEST_BOOKMARK_BY_BOOKMARKS_COLLECTION)\n      {\n         Bookmark=Bookmarks.Item(BookmarkName);\n         // ||\n         //Bookmark=Bookmarks.Item( 1 );\n         Bookmark.Select();\n      }\n      else\n      {\n         MSWord.Selection.GoTo(/*What*/ wdGoToBookmark, /*Which*/  0  /*wdGoToFirst*/, /*Count*/  0 , /*Name*/ BookmarkName);\n      }\n\n      MSWord.Selection.TypeText(document.getElementById("Input1").value);\n   }\n   \n   MSWord.ActiveDocument.SaveAs(OutputDoc);\n   MSWord.ActiveDocument.PrintOut(false, 0 , 0 ,"","","", 0 , 3 );\n   MSWord.ActiveDocument.Close();\n   MSWord.Quit();\n\n   alert("oB!!!");\n}\n// -->\n</script>\n  </head>\n  <body onload="TestCOM()">\n    <form>\n      <input type="text" id="Input1" value="123456789">\n    </form>\n  </body>\n</html>\n
Правда - ЭстЪ два ньюанса:
1. vladgrig
неустановлен у меня на компе excel

тут уж действительно - сливай воду
2. ActiveX && M$ IE, но на это
monticora
msgbox "Невозможно создать объект Excel. " + chr(13)+chr(10) + _
"Вам нужно изменить свойства Internet Explorer, а именно проделать следующее:" + chr(13)+chr(10) + _
"Меню Сервис -> Свойства обозревателя -> Безопастность ->" + chr(13)+chr(10) + _
"Зона интернет -> кнопка Другой -> Элементы ActiveX и модули подключения ->" + chr(13)+chr(10) + _
"установить флажок для поля Использование элеменов ActiveX " + chr(13)+chr(10) + _
"не помеченных как безопастные в положение Разрешить" + chr(13)+chr(10)

+ чтобы каждый раз не выскакивал запрос об разрешении ActiveX, -> M$ IE -> Tools -> Internet Options... -> Trusted sites

monticora
просто копию того, что я привёл на VB на C#

А чем Вас это не устроило? Или Вам лень разобраться и Вы хотите, что бы за Вас это сделали. Вот - тынць Разберитесь - там, IMHO, уже так все разжевано...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
WebApplication =>> Excel
    #34166367
monticora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это называется - переглючило... Причём меня так глючило 2 дня... Спасибо большое за ответы, я разобрался.

Иногда полезно почувствовать себя полным идиотом...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / WebApplication =>> Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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