Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/116: Рейтинг темы: голосов - 116, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
1

Проблема с Excel, специфическая

18.10.2012, 13:03. Показов 21695. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть сервер, теперь на нем есть Excel 2003, на сервере есть агент, который делает Excel файлик.
Суть проблемы:
Запускаем агент получаем ошибку: "Cannot create automation object"
Перезагрузили сервак, запускаем все работает, файлик приехал по почте.
Допилили агент, запускаем и получаем: "Cannot create automation object" Оо
Перезапустили сервак, запускаем все работает, файлик приехал по почте.
Ничего с агентом не делали, запускаем и получаем: "Cannot create automation object" >_<

Третий раз ребутить не стали, нечали разбираться.
1. Процесса Excel не висит в системе, ок.
2. Файлы и сам Excel создаются и запускаются, ок.
3. Логи винды по данной тематике пустые.

Лотусовый лок показал на строкус кодом:

LotusScript
1
Set object = CreateObject("Excel.Application")
Будто OLE-класс не найден... Но такое только после успешной отработки агентом 1 раз, причем только после ребута.

На серваке Win2Kx64, Excel 2003 x32.
Если кто сталкивался или если кто знает особенности x64 и 32-битного Excel, подскажите пож-та, что это происходит вообще???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2012, 13:03
Ответы с готовыми решениями:

Специфическая проблема предположительно с кодировкой
Доброго времени суток, на действующем проекте в некоторых местах, примерно до 1% от всего контента...

Специфическая сортировка коллекции
Задан список целых чисел и число X. Не используя вспомогательных объектов и не изменяя размера...

Специфическая ошибка службы 1
Здравствуйте, целый день пытаюсь настроить apache, но он постоянно выбивает такую ошибку (см....

Массив KeyValuePair + специфическая сортировка
Есть SortedList &lt;int, StatColor&gt; totalResultPalette. Его нужно преобразовать в массив KeyValuePair,...

20
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
18.10.2012, 13:46 2
Бала такая же фигня, причем на клиенте тоже (в рамках одной сессии).
Как обычно тупять и глючат СОМ объекты не полностью подчищая за собой.


LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub CloseMSobj(execName As String)
On Error Goto ErrH
Dim objs As Variant
Dim strSQL As String
Dim strWMI As String
strWMI = "winmgmts:"
strSQL = "Select * From Win32_Process "
strSQL = strSQL & {where Name = } & execName &{}
Set objs = GetObject(strWMI).ExecQuery(strSQL)
If Not objs Is Nothyng Then
Forall obj In objs
obj.Terminate
End Forall
End If
Quit:
Exit Sub
ErrH:
Resume Quit
End Sub
Код где то на этом форуме был. Убивает висящие процессы.

С ним работало нормально, пока на сервер не кинули битый excel файл, который повесил агент менеджер, после чего на сервер стал передавать txt предварительно сконвертированный на машине пользователи из excel.
0
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
18.10.2012, 13:47 3
может формировать excel файл с помощью xml? без оле

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Set ResStream=ns.CreateStream()
заполяем шапку xml
ResStream.WriteText(_
{<?xml version="1.0"?>}+el+_
{<?mso-application progid="Excel.Sheet"?>}+el+_
{<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"}+el+_
{xmlns:o="urn:schemas-microsoft-com:office:office"}+el+_
{xmlns:x="urn:schemas-microsoft-com:office:excel"}+el+_
{xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"}+el+_
{xmlns:html="http://www.w3.org/TR/REC-html40">}+el+_
{<Styles>}+el+_
{<Style ss:ID="Default" ss:Name="Normal">}+el+_
{<Alignment/>}+el+_
{<Borders/>}+el+_
{<Font x:CharSet="204"/>}+el+_
{<Interior/>}+el+_
{<NumberFormat/>}+el+_
{<Protection/>}+el+_
{</Style>}+el+_
.......
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
18.10.2012, 14:34 4
kizarek
Процесса в системе нет, это проверяли, да и на клиенте постоянно можно создать не один экземпляр Excel, это тоже проверено. И убиваю процессы немного иначе: вот так
yerke
Вот с XML не хочется возиться, ни времени ни желания особенного... Да и версии могут различаться.
.xls и .xlsx весьма различны...

Раньше эти отчеты делали только на клиенте, теперь один отчет они хотят получать раз в месяц.
Но вот такая вот засада...
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
18.10.2012, 15:10 5
Поиск по форуму dcomcnfg. Неправильная настройка DCOM для EXCEL - плавали - знаем.
http:///ipb.html?act=Searc...ite=%2Bdcomcnfg

И боян вообще :(
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
18.10.2012, 15:59 6
Ну боян не боян)) не сталкивался просто)
Что-то похожее на правду, но когда выставили "Текущий пользователь", то после ребута теперь тоже не работает, совсем не работает.
Старт лотусового сервака происходит из под local System. Может есть еще советы?
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
18.10.2012, 16:07 7
http://jexcelapi.sourceforge.net/
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
18.10.2012, 16:14 8
nvy
Думал, но не в этом году это будет.
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
18.10.2012, 20:33 9
на сервере такая связка вообще валить сервер могет в легкую..
в свое время я не искал решений создания в екселе отчетов на стороне сревера, т.к. сервак падал откровенно..
отчеты были простые, то я посмотрел на то, как они выглядят в хмл (если в екселе сохранить отчет в формате xml, то не трудно понять как оно устроено) и создавал их в хмл формате с расширением xls, работало на ура
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
18.10.2012, 21:27 10
Цитата Сообщение от savl
Что-то похожее на правду, но когда выставили "Текущий пользователь", то после ребута теперь тоже не работает, совсем не работает.
А попробуйте учетку админа указать явно. Так наверняка должно. "Текущий пользователь" не всегда помогает. Верно.

Или создать спец юзера с админскими правами и им запускать. Тогда автором создаваемого EXCEL файла будет этот пользователь.
0
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
18.10.2012, 22:31 11
Цитата Сообщение от savl
Вот с XML не хочется возиться, ни времени ни желания особенного... Да и версии могут различаться.
.xls и .xlsx весьма различны...
Версии здесь не при чем. Пишите в xml (http://en.wikipedia.org/wiki/Microsoft_Office_XML_formats), один раз разберетесь, потом забудете про тормоза и проблемы OLE MS Office.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
21.10.2012, 10:01 12
NetWood, не помогло... Какая-то фигня...

oshmianski2
И как потом xls сделать? если просто переименовать, то сорри, будет ругаться при открытии, что тоже не надо.

Kee_Keekkenen
На другом сервере все крутиться и проблем нет, тут дело в чем-то другом. Сам все пути и имена файлов прописаны жестко.
А у меня тут скрипт полуавтомат, сам выбирает что и как делать... Может и в этом проблема.
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
21.10.2012, 10:47 13
Цитата Сообщение от savl
не помогло... Какая-то фигня...
А сервер часом не терминальный? И как на него ставили домино и Excel? Если под терминалом и криво, то допускаю такие коленца.
0
0 / 0 / 0
Регистрация: 13.10.2005
Сообщений: 848
21.10.2012, 10:55 14
Цитата Сообщение от savl
И как потом xls сделать? если просто переименовать, то сорри, будет ругаться при открытии, что тоже не надо.
Можно делать двумя способами:
1) выгружать данные в ЧИСТЫЙ xml, создавать xsl-файл и через xslt получать xml MS Excelя.
2) сразу писать xml с разметкой MS Office Open xml. Тут xml сразу можно открыть MS Excelем, никакой xsl не нужен.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
21.10.2012, 10:57 15
NetWood
Удаленный, ставили через подключение по teamviewer.
Насчет кривизны ставки не скажу, поставили только 2 компанента word и excel.

Сейчас одну вещь проверим, после этого возможно все пройдет
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
21.10.2012, 13:09 16
когда-то делал так...
xml:<!--shcode--><pre><code class=xml><priceitem>
<art>LBC-1</art>
<grp> Материалы для оформления СТО </grp>
<prodname>Лайтбокс формованный</prodname>
<price>4063</price>
<quantity>343</quantity>
</priceitem>
<priceitem>
<art>DS-2</art>
<grp> Материалы для оформления СТО </grp>
<prodname>стойка</prodname>
<price>6000</price>
<quantity>30</quantity>
</priceitem>[/CODE]
шаблон для хухеля:<!--shcode--><pre><code class=xml><?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"

xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40"
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
<xsl:template match="/">
<xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction>
<Workbook
xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Title>test</Title>
</DocumentProperties>
<Worksheet ss:Name="Test">
<Table x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="51.326732673267323"
ss:DefaultRowHeight="12.831683168316831">
<xsl:apply-templates
select="descendant::document/@* | descendant::document/node()"/>
</Table>
</Worksheet>
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
<FitToPage/>
<Print>
<FitHeight>1</FitHeight>
<ValidPrinterInfo/>
<PaperSizeIndex>9</PaperSizeIndex>
<Scale>100</Scale>
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>600</VerticalResolution>
</Print>
<Selected/>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Workbook>
</xsl:template>
<xsl:template match="priceitem">
<xsl:element name="Row">
<xsl:for-each select="descendant::text()">
<xsl:element name="Cell">
<Data ss:Type="String">
<xsl:apply-templates select="."/>
</Data>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>[/CODE]
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
21.10.2012, 13:43 17
Да вот разобрались, классика жанра: "Горе от ума".
Агент должен был работать на сервере, поэтому перед тем как его выставить Enable я его проверял.
Запускал по кнопке, через RunOnServer. Таким образом работает только один раз.
Админ, запустил через консоль, все отработало. Попробовали через консоль еще раз: ошибка доступа к файлу.
Тут понятно, процесс не закрыл, но сам факт 2 раза подряд Excel создался.
Сделали агент на запуск каждые 30 минут, все работает как часы.
Стыд и позор моим познаниям :(

Всем спасибо за помощь и желание помочь, данный механизм я переведу на java, но чуть позже.
0
0 / 0 / 0
Регистрация: 28.05.2005
Сообщений: 347
19.01.2014, 16:21 18
В копилку знаний. Намедни, ни с того ни с сего, перестал работать Excel DCOM на одном сервере с ошибкой Cannot create automation object. В логах вижу невозможность подключения к серверу Domino. Стал разбираться. Оказалось, что поменяли имя хоста на Сервере, а в настройках Domino нет. Итого, для правильной работы с DCOM, кроме настроек dcomcnfg, должны совпадать:
1. имя хоста в настройках WIN
2. в закладках Сервер/Основные/Полностью определенное имя узла Интернета
3. и Сервер/Порты/Сетевые порты/TCPIP сетевой адрес.
Такие дела.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
20.01.2014, 10:49 19
Уже сколько писали про то, что MS Office и сервер - вещи не совместимые, но продолжаем есть кактус...

Вопрос я так понимаю уже решен, но несколько заметок на будущее:

1. ВСЕГДА, до вызова CreateObject пробуйте получить объект с помощью GetObject.
2. Можно легко принтами LS создать XML файл Excel. Немного разобраться, там только "шапка" файла, всё остальное вообще примитивно. Можно использовать заготовку сделанную с помощью самого Excel.
3. Excel на ура открывает обычные HTML фалы, даже если вы их переименуете в XLS.
4. Apache POI и куча других библиотек построенных на аналогичной технологии или поверх того же POI.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 116
04.06.2014, 13:55 20
Цитата Сообщение от savl
Да вот разобрались, классика жанра: "Горе от ума".
Агент должен был работать на сервере, поэтому перед тем как его выставить Enable я его проверял.
Запускал по кнопке, через RunOnServer. Таким образом работает только один раз.
Админ, запустил через консоль, все отработало. Попробовали через консоль еще раз: ошибка доступа к файлу.
Тут понятно, процесс не закрыл, но сам факт 2 раза подряд Excel создался.
Сделали агент на запуск каждые 30 минут, все работает как часы.
Стыд и позор моим познаниям

Всем спасибо за помощь и желание помочь, данный механизм я переведу на java, но чуть позже.
Приветствую, Savl! Вы уже перенесли его на Java? Дело в том, что у меня этот вопрос висит долго. Очень долго мучаюсь с Set Client = CreateObject("MSSOAP.SoapClient30")
Вычитал весь инет. Никак не получается. Нужен ХЭЛП
0
04.06.2014, 13:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2014, 13:55
Помогаю со студенческими работами здесь

Специфическая проверка на занятость логина
Прив. Мне понадобилось написать проверку логина при печатании(но с малой задержкой). Прям как в...

Разовая задача: специфическая обработка текста (добавление запятых)
Есть большой объем текста, отформатированный по определенному принципу. Дальнейшее его...

Специфическая ошибка службы: 1, при попытке запустить Apache
Привет, месяц назад устанавливал связку Apache+MySQL+PHP+mphMyAdmin. Все шикарно работало, сегодня...

проблема с excel
добрый день. есть такой проблем. открываем один файл эксель кликнув на нем, открываем второй...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru