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

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

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

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

P.S. Кури SSRS. Если дорого поднимать целый SSRS, есть более простой вариант - поставка отчетов через SOA. Вот пример .
...
Рейтинг: 0 / 0
Проблема с запуском Word
    #38336076
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Проблема с запуском Word
    #38336373
Heimdall88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь, щас изучу вопрос
...
Рейтинг: 0 / 0
Проблема с запуском Word
    #38337225
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Heimdall88И непонятна разница между запуском приложения через командную строку и запуском его через планировщик заданий. Может там дескриптор какой то не передаётся -( Зависание происходит на активации, и выделении строк - то бишь сугубо на визуальных вещах.
:)) у планировщика заданий нет "рабочего стола" - куда активировать-то твой Ворд??
...
Рейтинг: 0 / 0
Проблема с запуском Word
    #38338570
Heimdall88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ШайтанHeimdall88И непонятна разница между запуском приложения через командную строку и запуском его через планировщик заданий. Может там дескриптор какой то не передаётся -( Зависание происходит на активации, и выделении строк - то бишь сугубо на визуальных вещах.
:)) у планировщика заданий нет "рабочего стола" - куда активировать-то твой Ворд??

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

ндяааа...

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

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

ндяааа...

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

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

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


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