Модератор: Модераторы разделов
-
pollitra
- Сообщения: 94
- ОС: Ubuntu 8.04 AMD64
На что заменить exel.application
Есть внешняя обработка, импортирующая накладные в 1с из эксел файлов. Применяется ВходExcel = СоздатьОбъект(«Excel.Application»); Возможно ли избавиться от эксела и перейти на опенофис? Как?
-
warlomak
- Сообщения: 384
- ОС: Ubuntu 10.04
- Контактная информация:
-
TheTaker
- Сообщения: 68
- ОС: openSUSE 11.1
Re: На что заменить exel.application
Сообщение
TheTaker » 29.05.2008 02:05
warlomak писал(а): ↑
28.05.2008 10:41
BAV писал(а): ↑
28.05.2008 08:59
Я затаскиваю прайсы через DBF
он же написал «импортирующая накладные в 1с из эксел файлов» зачем гемор с DBF ?
Если нелениво переписать обработку на использование ОПЕН-ОФФИС, перепиши. ИМХО, лучший путь, чем подпорки типа УниОффис — они для тех мест, где код недоступен.
In a free world without restrictions, walls and fences, we do not need Windows® and Gates
———————————————
openSUSE 11.1. 2.6.27. 1C 8.1. Lucky Strike.
-
Mitridat
- Сообщения: 18
Re: На что заменить exel.application
Сообщение
Mitridat » 19.06.2008 11:53
А кто-нибудь знает, как переписывать под ООо?
Я сегодня поставил виндовый ООо под wine, переписал вот так обработку:
http://www.kb.mista.ru/article.php?id=180
Запустил её в 1С и получил ошибку: Неудачная попытка создания объекта (MSScriptControl.ScriptControl)
Видимо эта часть винды не реализована в wine.
Вот ссылка на загрузку:http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-426fec693ac&displaylang=en#Overview
Но загрузить можно только пройдя тест на легальность операционки. Наверно можно ещё откуда-нибудь загрузить без всяких тестов, но искать не стал, потому как компонент наверняка является частью винды и его установка и использование в wine будет незаконным без покупки лицензии на винду.
-
Djam
- Сообщения: 533
- ОС: Mandriva 2009.0
Re: На что заменить exel.application
Сообщение
Djam » 25.06.2008 16:58
что-то битая ссылка…
Mandriva 2009 Spring Free, kernel-2.6.29.6-2, wine@etersoft 1.0.10 Network, 1C all, ASUS P5PE-VM i865G, 1024 Mb, iPentium 3.06 GHz(s775)
истина где-то рядом, но мы ни как не встретимся
-
Denjs
- Сообщения: 1685
- ОС: SuSe 10.2
Re: На что заменить exel.application
Сообщение
Denjs » 25.06.2008 17:02
курить интернет .
там есть «косячек» с осзданиеи COM-объекта (он создается но изначально не такой как надо 1С-ке)
вообще тема разобрана на ряде форумов.
описания COM-объектов ОО можно найти на офф-сайте только не знаю где… думаю не слишком глубоко зарыты — когда мне надо было — набрел.
QDroid — Среда исполнения и фреймворк для QtScript.
OTPD — Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
-
Mitridat
- Сообщения: 18
Re: На что заменить exel.application
Сообщение
Mitridat » 03.07.2008 12:46
Serg11, интересный вариант, надо попробовать. Но, честно говоря, хочется обойтись без библиотек сомнительной лицензионности.
по совету Denjs я так ничего и не нашёл в интернет
Сам больше всего склоняюсь к варианту сохранения предварительно обработанного листа (макросом или руками) в dbf файл.
OOo.Calc это позволяет.
А в 1С его уже напрямую затаскивать, без всяких там OLE,COM,UNO и прочих ADO/DAO.
kohet Пользователь Сообщений: 27 |
Итак, Microsoft уходит с российского рынка вместе с экселькой. P.S. «Шеф, все пропало!» я уже кричал. |
БМВ Модератор Сообщений: 21386 Excel 2013, 2016 |
100% нет, да и не может быть. Есть более близкие аналоги. Например Libre Calc, и даже VBAподдерживает, но все ж это не Excel, и как по функционалу, так и по быстродействию. По вопросам из тем форума, личку не читаю. |
Jack Famous Пользователь Сообщений: 10854 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
Российские офисные пакеты МойОфис
— это просто вариант, но никак не замена Изменено: Jack Famous — 15.03.2022 09:12:31 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
Olga H. Пользователь Сообщений: 383 |
Изменено: Olga H. — 15.03.2022 09:31:02 |
Jack Famous Пользователь Сообщений: 10854 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#5 15.03.2022 09:32:58
хорошее имортозамещение импортом Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
tutochkin Пользователь Сообщений: 559 |
Jack Famous, в МойОфис нет VBA. Да что там VBA, там простой точечный график не поддерживается (по крайней мере в домашней версии). |
Jack Famous Пользователь Сообщений: 10854 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#7 15.03.2022 13:39:28
а я где-то писал, что есть? Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
Olga H. Пользователь Сообщений: 383 |
kohet
, 1.Может эти варианты вам подходят, про реальный их функционал ничего сказать не могу: https://r7-office.ru/redaktor-dokumentov https://www.onlyoffice.com/ |
БМВ Модератор Сообщений: 21386 Excel 2013, 2016 |
#9 15.03.2022 22:41:51
там LUA r7 — java В отличии от них Libre переварит простенькие VBA коды. Есть разница и обеспечить совместимость сложно но можно. Вот пример вызова диалога выбора файла
И в целом, возможность замены зависит от глубины интеграции продукта с другими системами и объема использования вичь которые доступны в MS Office. Для многих и Libre более чем. По вопросам из тем форума, личку не читаю. |
|||
ПРОИЗВЕД Пользователь Сообщений: 140 |
Российский рынок слишком мал чтобы создать что-то стоящее… Изменено: ПРОИЗВЕД — 17.03.2022 10:57:16 |
pharmaprofi Пользователь Сообщений: 234 pharmaprofi |
На самом деле кроме проблемы замены, еще и база знаний должна быть. Желательно доступная |
tutochkin Пользователь Сообщений: 559 |
#12 17.03.2022 14:37:18
так в теме прописано же… Не? |
||
Jack Famous Пользователь Сообщений: 10854 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#13 17.03.2022 18:22:28
2 вопроса) Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||||
sokol92 Пользователь Сообщений: 4446 |
LibreOffice
(LO) серьезный продукт, требующий (как и Microsoft Office) основательного изучения. В отличие от MS Excel LO поддерживает несколько языков программирования, в том числе Basic (имеющий практически одинаковый синтаксис с VBA) и Python. Объектная модель в LO Calc иная, чем в Excel (что видно в примере Михаила). LO является мультиплатформенным и входит в состав многих дистрибутивов. Изменено: sokol92 — 17.03.2022 20:13:01 |
БМВ Модератор Сообщений: 21386 Excel 2013, 2016 |
#15 17.03.2022 21:35:45 sokol92, Владимир,
лучше сказать что она имеет отличия. Так как многое совпадает, но разница может подстерегать в самом непредсказуемом месте.
И , возможно плохо пытался, но не разу не удалось с нуля создать проект с VBA в нем, который бы работал в Excel. Все что делал делал в Excel и ретушировал под LO. Как уже писал выше, работать можно и большинство даже не заметят отличий (кроме другого интерфейса), но быстродействие тоже сильно уступает. Изменено: БМВ — 17.03.2022 22:57:08 По вопросам из тем форума, личку не читаю. |
|||
Смотрю, на LO тут сильно поднасели Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
DrillPipe Пользователь Сообщений: 342 |
#17 11.04.2022 21:56:09
https://habr.com/ru/company/ncloudtech/blog/660177/ |
||
tutochkin Пользователь Сообщений: 559 |
#18 11.04.2022 22:08:38 DrillPipe, да, видел, посмеялся.
|
||
stepanup Пользователь Сообщений: 1 |
#19 14.04.2022 12:43:30
ИМХО, на данный момент — ничем. Сам в VBA глубоко не погружался, для большинства задач хватало PowerQuery. Теперь тестирую Loginom , как замену PQ — очень симпатичная разработка из «соломенной Рязани», есть удачные фишки, но для полноценной обработки данных похоже придется использовать блоки с python’овским кодом. Посмотрите, может часть ваших задач и закроет. |
||
Михаил Л Пользователь Сообщений: 2642 |
#20 16.04.2022 10:59:49
Как это будет происходить? Возможно, из-за ухода не будет обновлений продуктов. Что это значит? Что состояние Excel будет теперь неизменно. Меня это устраивает. НА МЯСО В ПРОФИЛЕ |
||
БМВ Модератор Сообщений: 21386 Excel 2013, 2016 |
#21 16.04.2022 13:26:47
Рисую картину переживаний 2. Несмотря на все преимущества новых версий можно оставаться на прежних, но для частного сектора это не проблема, а вот компаниям, которым могут сказать переходить на импортозамещенное ПО , а также где не могут оставаться без обновлений из соображения безопасности ….. грядет переход. Я вот с интересом жду когда Google заблокирует Sheets . Сколько радостно переметнувшихся туда останутся с тыквой вместо кареты? И обратите внимание это бесплатный сервис, и если уж бизнес партнеры ведут себя так, я о невыполнении обязательств, то когда обязательств нет то совесть совсем беспокоить не станет. По вопросам из тем форума, личку не читаю. |
||
_Igor_61 Пользователь Сообщений: 3007 |
Бесплатный сыр.. Если руководитель компании здравомыслящий, он не будет работать с сервисами, предлагающими средства обработки его информации в облаках по причине безопасности (т.е. работы с данными) его бизнеса. Сегодняшняя ситуация похожа на сговор конкретных персоналий, в чьих руках случайно оказалось управление данными. Производители новых версий ПО предлагают много хорошего (удобного), облегчающего работу, но не более того, что можно было делать и в Excel 2003 (только что скорость обработки возрастает, и то не всегда, но это железо в основном работает, а не ПО). Похоже, просто кто-то кого-то кинул или кто-то захотел забрать лишнего, вот и начались разборки |
БМВ Модератор Сообщений: 21386 Excel 2013, 2016 |
#23 16.04.2022 20:47:52
это и так и нет . Работа в облаке ничем не отличается от найма копании партнера для работы. Все те же NDA (договор о неразглашении) . Есть конечно которые не смотря на это стараются не пускать к боевым данным никого и возможно это и правильно, глядя на то как исполняются договора. По вопросам из тем форума, личку не читаю. |
||
_Igor_61 Пользователь Сообщений: 3007 |
#24 19.04.2022 16:38:48
|
||
pharmaprofi Пользователь Сообщений: 234 pharmaprofi |
#25 19.04.2022 17:15:30
Удалось пока обойти для MS 365. Купил ключ на Yandex Market и продлил лицензию с помощью этого ключа. Но это не новая покупка, а продление существующей подписки. |
||
_Igor_61 Пользователь Сообщений: 3007 |
#26 19.04.2022 17:35:36
Ну вот, печалиться не о чем! Пользователи заплатят еще несколько раз за очередные обещания владельцев бизнеса Изменено: _Igor_61 — 19.04.2022 17:37:59 |
||
egonomist Пользователь Сообщений: 409 |
Малую автоматизацию можно вести в open source инструментах, используя файлы xlsx. Mito , бонус — с помощью пакета excel.link можно в excel запускать R код, а используя пакет reticulate выполнять python код. Таким образом можно формировать код формулами экселя и выполнять его. Ещё один вариант использования — работа с большими данными — используя duckDB можно хранить данные локально в паркет файлах, а в excel получать нужные срезы (в R и python есть клиент для duckDB). В этом месяце у duckDB появился нормальный odbc драйвер. Эксель в таком случае просто как пользовательский интерфейс к базе получается. проверка качества данных: в R пакет validate, в python библиотека great expectations — покрывает всё потребности. Оркестратор — dagster. Не требует docker, работает в windows. интерактивные приложения делать с помощью пакета shiny в R или в питоне streamlit, если есть docker, то appsmith лучший low-code инструмент для веб приложений. Иногда это велосипед, но иногда очень может выручить. Изменено: egonomist — 30.04.2022 09:08:22 |
_Igor_61 Пользователь Сообщений: 3007 |
#28 05.05.2022 17:49:55 egonomist, немного от темы отошли
Изменено: _Igor_61 — 05.05.2022 17:51:58 |
||
tutochkin Пользователь Сообщений: 559 |
#29 06.05.2022 21:17:43
Спасибо, посмеялся… |
||
_Igor_61 Пользователь Сообщений: 3007 |
#30 07.05.2022 17:01:29
смех сквозь слезы… Конечно, работодатели разные бывают, в том числе и здравомыслящие, но частенько многие из них хотят «все в одном»… Увы, но такое присутствует в нашей не виртуальной реальности… |
||
Привет всем. Задача состоит в том чтобы экспортировать данные в Excel да еще чтоб чарты там были. Я сначало сделал это все через Excel.Application, а потом обрадовался что на серваке такого объекта нету. Можно конечно установить на нем офис, но не очень то хочеться ради этого объекта захломлять сервак, да и говорят безопасность страдает от офиса. Знает ли кто, как можно отдельно его зарегить и потом спокойно пользовать. В реестре написано что он ссылаеться на excel.exe, но я не уверен что одного exe нему достаточно. В инете не нашел ни отдельного дистрибутива, как библиотеки так и описания как такое сотворить.
Помогите советом плиз.
Зарание блогадарю.
Перем Об_Конект;
Перем Об_РекордСет;
Функция ПодключитьсяКБазе()
Состояние(«Подключание к базе «+ПутьИФайл);
Файл=Новый Файл(ПутьИФайл);
Если Файл.Существует() Тогда
Стр_Файл=Файл.ПолноеИмя;
// Отрезаем слеш если он есть в конце пути
Стр_Путь=Файл.Путь;
Если Прав(Стр_Путь,1)=»» Тогда
Стр_Путь=Лев(Стр_Путь,СтрДлина(Стр_Путь)-1);
КонецЕсли;
// Строка коннекта
Стр_Конект = «Driver={Microsoft Excel Driver (*.xls)};
|DriverId=790;
|Dbq=»+Стр_Файл+»;
|DefaultDir=»+Стр_Путь+»;»;
Об_Конект = Новый COMОбъект(«ADODB.Connection»);
Попытка
Об_Конект.Open(Стр_Конект);
Состояние(«»);
Возврат Истина;
Исключение
Сообщить («Не возможно подключится к Microsoft Excel Driver!!!
|Возможно файл [«+Стр_Файл+»] открыт другим пользователем.»);
Состояние(«»);
Возврат Ложь;
КонецПопытки;
Иначе
Сообщить(«Файл «+ПутьИФайл+» не найден!»);
Состояние(«»);
Возврат Ложь;
КонецЕсли; //Файл.Существует()
КонецФункции
Если Об_Конект = Неопределено Тогда
Если Не ПодключитьсяКБазе() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Стр_SQL = «SELECT DISTINCT [Подразделение возникновения] FROM [«+СокрЛП(ИмяЛиста)+»$]»;
Об_РекордСет = Новый COMОбъект(«ADODB.Recordset»);
Попытка
Об_РекордСет=Об_Конект.Execute(Стр_SQL);
Исключение
Сообщить(«Не удадлось выполнить запрос к файлу Excel
|»+ ОписаниеОшибки(),СтатусСообщения.Важное);
Возврат;
КонецПопытки;
Пока НЕ Об_РекордСет.EOF Цикл
ОбработкаПрерыванияПользователя();
НаименованиеФилиала = Об_РекордСет.Fields(«Подразделение возникновения»).value;
Об_РекордСет.MoveNext();
КонецЦикла;
Ну вот как-то так я для себя это открывал с помощью googl и не так долго…
Если используете Microsoft.Office.Interop.Excel то что бы не было тормозов при заполнении передавайте данные сразу диапазоном. Вот один из моих методов, которыми пользуюсь.
void ToExcel(DataTable dt1)
{
try
{
Excel.Application EoXL;
Excel._Workbook EoWB;
Excel._Worksheet EoSheet;
Excel.Range excelRange;
EoXL = new Excel.Application();
EoXL.Visible = false;
EoWB = EoXL.Workbooks.Add(Type.Missing);
int TabRows = 1;
EoSheet = (Excel.Worksheet)EoWB.Worksheets.get_Item(1);//ссылка на лист excel
EoSheet.Name = "Отчет о кодах возвратных накладных";
EoSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
int row = dt1.Rows.Count;
int col = dt1.Columns.Count;
EoSheet.Cells[1, 1] = "Префиксы возвратных накладных и счетов фактур подразделений";
EoSheet.Cells[1, 1].VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
EoSheet.Cells[1, 1].Font.Bold = true;
EoSheet.Cells[1, 1].Font.Size = 16;
// передаем первую таблицу, заполняем ее в памяти и передаем целиком
object[,] dataExport = new object[row, col];
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
dataExport[i, j] = dt1.Rows[i][j];
}
}
excelRange = EoSheet.Range[EoSheet.Cells[2 + TabRows, 1], EoSheet.Cells[row + 1 + TabRows, col]];
excelRange.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, dataExport);
excelRange.Borders.ColorIndex = 0;
//этот кусок в качестве примера указания типа данных в ячейках
// excelRange = EoSheet.Range[EoSheet.Cells[2 + TabRows, 8], EoSheet.Cells[row + 1 + TabRows, 10]];
// excelRange.NumberFormat = "#,##0.00";
// формируем заголовок
ArrayList displayColumnExsel = new ArrayList();
foreach (DataColumn c in dt1.Columns)
{
displayColumnExsel.Add(c.ColumnName);
}
object[] dataExportH = new object[col];
for (int i = 0; i < col; i++)
dataExportH[i] = displayColumnExsel[i];
excelRange = EoSheet.Range[EoSheet.Cells[1 + TabRows, 1], EoSheet.Cells[1 + TabRows, col]];
excelRange.set_Value(Excel.XlRangeValueDataType.xlRangeValueDefault, dataExportH);
excelRange.Font.Bold = true;
excelRange.WrapText = true;
excelRange.Borders.ColorIndex = 0;
excelRange.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
excelRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
EoXL.Visible = true;
}
catch (Exception er)
{
MessageBox.Show(er.Message, "Ошибка метода переноса таблиц", MessageBoxButton.OK, MessageBoxImage.Error);
}
}