Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как сразу открыть Excel на клиенте без диалогового окна? / 20 сообщений из 20, страница 1 из 1
03.10.2006, 08:42
    #34027529
Как сразу открыть Excel на клиенте без диалогового окна?
Возможно ли это?
Чтобы юзер нажал кнопку и у него открылся сразу ексел и в нем содержимое грида через response.
И как на диск клиенту файл записать без диалоговых окошек?
...
Рейтинг: 0 / 0
03.10.2006, 11:47
    #34028061
Как сразу открыть Excel на клиенте без диалогового окна?
Блин какой-то форум неактивный.
На Oracle уже бы десяток советов дали :)
Ау есть тут кто-нибудь?
...
Рейтинг: 0 / 0
03.10.2006, 12:18
    #34028187
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
top.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Договора Saperion</title>
<script language="vbscript">
Sub Button1_onclick

Select Case Select1.selectedIndex

Case 0 ' Use Automation.
Dim sHTML
sHTML = window.parent.frames("bottom").document.forms(0).children("DataGrid1").outerhtml
Dim oXL, oBook
Set oXL = CreateObject("Excel.Application")
Set oBook = oXL.Workbooks.Add
oBook.HTMLProject.HTMLProjectItems("Sheet1").Text = sHTML
oBook.HTMLProject.RefreshDocument
oXL.Visible = true
oXL.UserControl = true

Case 1 ' Use MIME Type (In a New Window).
window.open("Твоястраничка.aspx?bExcel=1")

Case 2 ' Use MIME Type (In the Frame).
window.parent.frames("bottom").navigate "Твоястраничка.aspx?bExcel=1"
End Select
End Sub
</script>

</head>
<body>
<select id="Select1" size="1" name="Select1">
<option value="0" selected>Automation</option>
<option value="1">Открыть в новом окне</option>
<option value="2">Открыть в текущем окне</option>
</select>
<input id="Button1" type="button" value="Go!" name="Button1" />

</body>
</html>

Frameset.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<frameset rows="10%,90%">
<frame noresize="0" scrolling="no" name="top" src="top.htm">
<frame noresize="0" scrolling="yes" name="bottom" src="Твоястраничка.aspx" (в ней у тебя grid)>
</frameset>
</html>

а дальше ковыряйся с настройками IE в ActiveX )))
...
Рейтинг: 0 / 0
03.10.2006, 12:36
    #34028299
Как сразу открыть Excel на клиенте без диалогового окна?
Спасибо за отклик :)

А можно как-нить сделать так, чтобы из серверного кода страницу записать в переменную объектную или в буфер, а потом передать ее жаба скрипту.
А тот уже на машине клиента откроет ексел и туда сразу вставит всю страничку?
...
Рейтинг: 0 / 0
03.10.2006, 12:39
    #34028314
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
не фффтыкнул ))
...
Рейтинг: 0 / 0
03.10.2006, 13:41
    #34028612
Как сразу открыть Excel на клиенте без диалогового окна?
Надо ексель открыть на стороне клиента через жаба скрипт.
Через com технологию.
...
Рейтинг: 0 / 0
03.10.2006, 13:45
    #34028629
Как сразу открыть Excel на клиенте без диалогового окна?
Блин не дописал.

Итак ексель открывается через жаба скрипт.
Но просто открыть ексель какой в этом толк. Надо же туда че нить закачать, типа отчет сформировать.

А данные все формируются серверным кодом. Открывается на сервере курсор.
В нем данные. Как эти данные в виде массива или объекта можно передать клиентскому скрипту на жабе. Чтобы клиентский скрипт получил от серверного кода набор данных и вставил их в ексель?
...
Рейтинг: 0 / 0
03.10.2006, 13:47
    #34028648
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
да, плин, какая разница )))

<script language="javascript" type="text/javascript">

function ExcClick(obj(можно параметрами передавать))
{
а можно так:
var per1=document.getElementById("контрол");
var per2=document.getElementById("контрол");


var Excel, Book;
Excel = new ActiveXObject("Excel.Application");
Excel.Visible = true;
это на открытие, на создание сам догадаешься ))
Book = Excel.Workbooks.Open("c:\file.xls");
Excel.Cells(19,130).value=per1.value;
Excel.Cells(19,149).value=per2.value;
}
...
Рейтинг: 0 / 0
03.10.2006, 14:03
    #34028731
Как сразу открыть Excel на клиенте без диалогового окна?
Да я пробовал так, но если я передаю массив в жаба скрипт, то передается только его первый элемент.
А меня есть таблица (GridView) в которой может быть более тысячи записей.

Может я чего то не то делаю?

И если вдруг есть возможность передать весь массив целиком в скрипт, то можно его как-то сразу в ексель вывалить, а не каждую ячейку выводить по отдельности?
...
Рейтинг: 0 / 0
03.10.2006, 14:06
    #34028747
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
вот нафик тебе массив, что ты к нему пристал? ))
...
Рейтинг: 0 / 0
03.10.2006, 14:16
    #34028790
Как сразу открыть Excel на клиенте без диалогового окна?
Скорость вывода :)
То ли дело по одной ячейки выводить, а то сразу бухнуть массив в ексель, а потом только отформатировать как надо и всякие там шапки ввести и прочее.
...
Рейтинг: 0 / 0
03.10.2006, 14:25
    #34028828
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
ты же говоришь у тебя грид )
...
Рейтинг: 0 / 0
03.10.2006, 14:35
    #34028866
Как сразу открыть Excel на клиенте без диалогового окна?
Я только начал работать с ASP.NET и WEB технологиями.
До этого токо Win - приложения делал.
Поэтому туплю по черному.
За что прошу прощения :)
Попробовал Ваш код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        var oExcel = new ActiveXObject('Excel.Application');
        var oBook = oExcel.Workbooks.Add;

        tab = document.getElementById("GridView1");

        var sHTML;
        sHTML = tab.outerhtml;

        oBook.HTMLProject.HTMLProjectItems("Лист1").Text = sHTML;
        oBook.HTMLProject.RefreshDocument; // здесь ошибка, такой объект не поддерживается, почему?


        oExcel.visible = true;

...
Рейтинг: 0 / 0
03.10.2006, 14:39
    #34028880
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
в настройках IE в ActiveX сделай enable где неподписанные
...
Рейтинг: 0 / 0
03.10.2006, 14:45
    #34028891
Как сразу открыть Excel на клиенте без диалогового окна?
Guest112в настройках IE в ActiveX сделай enable где неподписанные

уже стоит :)

Код: plaintext
1.
oBook.HTMLProject.RefreshDocument(true);

а вот так работает :)

только пустой лист выводит блин :(

и сетки нет в листе, ну да и фиг на нее, а вот данных нет

и еще не подскажете, а можно брать какой-нибудь шаблон (с шапками, формиатированием и т.д.) открывать его, например с сервера и туда добавлять нужные записи
...
Рейтинг: 0 / 0
03.10.2006, 14:51
    #34028909
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
сетку тоже можно, это все в свойствах Excel есть )
...
Рейтинг: 0 / 0
03.10.2006, 14:51
    #34028910
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
можно конечно, я так делал, очень удобно ))
...
Рейтинг: 0 / 0
03.10.2006, 14:54
    #34028925
Как сразу открыть Excel на клиенте без диалогового окна?
Код: plaintext
1.
sHTML = tab.outerhtml;

а точно так пишется: outerhtml?

если пишу

Код: plaintext
1.
sHTML = tab.innerText;

то в документ вставляет абракадабру какую то.

может пишется outerHtml или еще как-то?
тут же в жаба от регистра еще зависит?
...
Рейтинг: 0 / 0
03.10.2006, 14:56
    #34028936
Как сразу открыть Excel на клиенте без диалогового окна?
а как именно с шаблоном работать,
подскажите пожалуйста, а то время поджимает, а разобраться никак не могу.
Где он должн храниться этот шаблон? Как к нему обратиться?
...
Рейтинг: 0 / 0
03.10.2006, 15:02
    #34028953
Guest112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сразу открыть Excel на клиенте без диалогового окна?
вот например, примерчик, который у меня )) единственное только с 2003 будет работать )
<script runat="server">
public void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "inline; filename=myfile.xls");
Response.ContentType = "application/vnd.ms-excel";

DataSet ds = GetData();

XmlDocument xslDoc = new XmlDocument();
xslDoc.Load(Server.MapPath("~/App_Data/file.xsl"));

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(ds.GetXml());

XslTransform xslt = new XslTransform();
xslt.Load(xslDoc);

using (StringWriter writer = new StringWriter())
{
xslt.Transform(xmlDoc, null, writer, null);
Response.Write(writer.ToString());
}
Response.End();
}
DataSet GetData()
{
DataSet dt = new DataSet("DataSet");

string connectionString ="";
OdbcConnection odbcCon = new OdbcConnection(connectionString);
OdbcDataAdapter odbcDa = new OdbcDataAdapter("select DateDog, Region, NameDog, NDogCAgent, " +
" SubjDog, CalcDog, DateBegin, DateEnd " +
"from dmain", odbcCon);
try
{
odbcCon.Open();
odbcDa.Fill(dt, "Table");

}
catch (Exception err)
{
throw err;
}
finally
{
odbcCon.Close();
}
return dt;
}

</script>

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


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