Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с запуском Word / 10 сообщений из 10, страница 1 из 1
18.07.2013, 16:46
    #38335924
Heimdall88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Здравствуйте!
У меня проблема следующая - необходимо на сервере создавать отчёты на MS Word. Пакет MS Office там установлен. Была реализована консольная утилита, которая запускается по заданию на сервере (или предыдущий вариант через хранимую процедуру MS SQL - xp_cmdshell).
Утилита загружает и обрабатывает Word как COM сервер.

В обоих случаях происходит зависание программы на операторах вроде vWordDoc.Activate();
Если делаю vWordApp.Visible = true, то Word не отображается.

При этом, когда эту же утилиту тупо запускаю через командную строку на сервере - всё замечательно.
Не откроет ли мне кто глаза на корень проблемы?
...
Рейтинг: 0 / 0
18.07.2013, 17:02
    #38335946
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Heimdall88Не откроет ли мне кто глаза на корень проблемы?
Корень вот он: никогда не используй office automation на сервере, это дикое зло, которое даже MS не рекомендует.
Проблема решается банально: генератор отчетов или openxml.
...
Рейтинг: 0 / 0
18.07.2013, 17:14
    #38335968
Heimdall88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
МСУHeimdall88Не откроет ли мне кто глаза на корень проблемы?
Корень вот он: никогда не используй office automation на сервере, это дикое зло, которое даже MS не рекомендует.
Проблема решается банально: генератор отчетов или openxml.

Я уже согласен не использовать, но как тогда решаются задачи с генерацией Word/Excel отчётов на сервере в тех же Web-приложениях - неужели через левые генераторы отчётов? И непонятна разница между запуском приложения через командную строку и запуском его через планировщик заданий. Может там дескриптор какой то не передаётся -( Зависание происходит на активации, и выделении строк - то бишь сугубо на визуальных вещах.
...
Рейтинг: 0 / 0
18.07.2013, 17:18
    #38335978
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Heimdall88неужели через левые генераторы отчётов?
Почему левые?

P.S. Кури SSRS. Если дорого поднимать целый SSRS, есть более простой вариант - поставка отчетов через SOA. Вот пример .
...
Рейтинг: 0 / 0
18.07.2013, 18:13
    #38336076
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Heimdall88,

нет не левые

вот приблизительный пример выгрузки в Ecxel

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
protected void btnExport(object sender, EventArgs e)
{
DataTable resultToExcel = ExportToExcel.ExportDataToExcel(WebConfigurationManager.ConnectionStrings["строка подключения"].ConnectionString);
//ExportToExcel - класс, ExportDataToExcel - метод   ПОЛУЧАЕМ ДАННЫЕ ИЗ БАЗЫ

HtmlTable results = ExportUsersInManager.ConvertToHtml(resultToExcel);//ExportUsersInManager - конвертировать DataTable в HtmlTable
           Response.Clear();
           Response.Cache.SetCacheability(HttpCacheability.NoCache);
           Response.AddHeader("Content-Disposition", "attachment; filename=Тест.xls");
           Response.ContentType = "application/vnd.ms-excel";
           StringWriter stringWrite = new StringWriter();
           HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
           results.RenderControl(htmlWrite);
           Response.Write(stringWrite.ToString());
           resultToExcel.Dispose();
           results.Dispose();
           Response.End();
}



класс ExportToExcel
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public static class ExportToExcel
{
public static DataTable ExportDataToExcel(string Connection)
{
DataTable resultsToExcel = new DataTable();
//если надо что то делаешь
using (SqlCommand command = new SqlCommand(store))
{
//добавляешь параметры если нужны
SqlDataAdapter adapter = new SqlDataAdapter(command);
            try
            {
                adapter.Fill(resultsToExcel);
            }
            catch { return null; }
return resultsToExcel;
}
}
}



класс ExportUsersInManager

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
public static class ExportUsersInManager
{
public static HtmlTable ConvertToHtml(DataTable dataTable)
    {
        var htmlTable = new HtmlTable();
        if (dataTable == null) return htmlTable; //null reference, empty table

        HtmlTableRow htmlRow = new HtmlTableRow();
        htmlTable.Rows.Add(htmlRow);

        foreach (DataColumn column in dataTable.Columns)
        {
            //htmlRow.Cells.Add(new HtmlTableCell() { InnerText = column.ColumnName });
            HtmlTableCell Cell = new HtmlTableCell();
            Cell.InnerText = column.ColumnName;
            Cell.BgColor = "Gray";
            Cell.Align = "Center";
            Cell.Attributes.Add("style", "font-size:14px; color: white;");
            htmlRow.Cells.Add(Cell);
        }
        
        foreach (DataRow row in dataTable.Rows)
        {
            htmlRow = new HtmlTableRow();
            htmlTable.Rows.Add(htmlRow);

            foreach (DataColumn column in dataTable.Columns)
            {
                //htmlRow.Cells.Add(new HtmlTableCell() { InnerText = row[column].ToString() });
                HtmlTableCell Cell = new HtmlTableCell();
                Cell.InnerText = row[column].ToString();
                htmlRow.Cells.Add(Cell);
            }
        }

        return htmlTable;
    }
}
...
Рейтинг: 0 / 0
19.07.2013, 08:12
    #38336373
Heimdall88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Спасибо за помощь, щас изучу вопрос
...
Рейтинг: 0 / 0
19.07.2013, 16:26
    #38337225
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Heimdall88И непонятна разница между запуском приложения через командную строку и запуском его через планировщик заданий. Может там дескриптор какой то не передаётся -( Зависание происходит на активации, и выделении строк - то бишь сугубо на визуальных вещах.
:)) у планировщика заданий нет "рабочего стола" - куда активировать-то твой Ворд??
...
Рейтинг: 0 / 0
22.07.2013, 08:40
    #38338570
Heimdall88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
ШайтанHeimdall88И непонятна разница между запуском приложения через командную строку и запуском его через планировщик заданий. Может там дескриптор какой то не передаётся -( Зависание происходит на активации, и выделении строк - то бишь сугубо на визуальных вещах.
:)) у планировщика заданий нет "рабочего стола" - куда активировать-то твой Ворд??

А у командной строки есть "рабочий стол" ? ) Зависание происходит не только при активации, но и при выделении текста в документе при скрытом Worde.
...
Рейтинг: 0 / 0
22.07.2013, 11:50
    #38338764
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
Heimdall88А у командной строки есть "рабочий стол" ? ) Зависание происходит не только при активации, но и при выделении текста в документе при скрытом Worde.

ндяааа...

"рабочий стол" есть у юзверя, который эту самую командную строку юзает

а зависание при выделении текста - это "издержки" OLE Automation
...
Рейтинг: 0 / 0
25.07.2013, 08:11
    #38343127
Heimdall88
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запуском Word
ШайтанHeimdall88А у командной строки есть "рабочий стол" ? ) Зависание происходит не только при активации, но и при выделении текста в документе при скрытом Worde.

ндяааа...

"рабочий стол" есть у юзверя, который эту самую командную строку юзает

а зависание при выделении текста - это "издержки" OLE Automation

Спасибо, учитель )) Похоже на правду
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с запуском Word / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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