Вверх ↑
Этот топик читают: Гость
Ответов: 161
Рейтинг: 3
#1: 2022-05-01 11:59:40 ЛС | профиль | цитата
подскажите рабочий метод экспорта xls из матрицы строк, тут поискал не работаю или требуют установленного офиса.
карма: 1

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8751
Рейтинг: 807
#2: 2022-05-01 14:04:50 ЛС | профиль | цитата
ric писал(а):
экспорта xls из матрицы строк

Без установленной Excel записывать данные в файл -- нужно очень хорошо знать всю Excel-ную кухню
карма: 18

0
Ответов: 161
Рейтинг: 3
#3: 2022-05-01 15:51:16 ЛС | профиль | цитата
нашел вот такую штуку но тоже не работает, по непонятной причине.
https://forum.hiasm.com/getfile/39438

Редактировалось 1 раз(а), последний 2022-05-01 15:51:39
карма: 1

0
файлы: 1export_xls.zip [7KB] [69]
Ответов: 333
Рейтинг: 49
#4: 2022-05-01 23:28:22 ЛС | профиль | цитата
ric писал(а):
не работает, по непонятной причине.

У меня этот компонент прекрасно работает. (Windows10/64)
карма: 9

0
Ответов: 161
Рейтинг: 3
#5: 2022-05-02 00:56:53 ЛС | профиль | цитата
Gunta писал(а):

У меня этот компонент прекрасно работает. (Windows10/64)

у меня нет, при открытии файла показывает ошибку, а если в xlле открыть то пустой файл несколько цифр и все, даже из примера не открывается после экспорта.
карма: 1

0
Ответов: 333
Рейтинг: 49
#6: 2022-05-04 11:30:29 ЛС | профиль | цитата
ric, Какой у тебя windows? Какая версия офиса? Принципиально нужен XLS или XLSX тоже пойдёт?

Add(MainForm,2953706,119,126)
{
Width=676
Height=234
link(onCreate,11401622:doConsoleExec,[])
}
Add(WinExec,11401622,175,126)
{
FileName="powershell"
Param="-command (Get-WmiObject Win32_OperatingSystem).caption;(Get-WmiObject Win32_OperatingSystem).OSArchitecture;(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').ReleaseId; 'Версия МС Офиса - ' +(New-Object -ComObject Excel.Application).Version"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,10828305:doCharset,[])
}
Add(Charset,10828305,224,140)
{
link(onCharset,3034453:doAdd,[])
}
Add(Memo,3034453,287,140)
{
Width=660
Height=195
Align=5
Font=[MS Sans Serif,16,0,0,1]
ScrollBars=3
}

карма: 9

0
Ответов: 333
Рейтинг: 49
#7: 2022-05-04 13:32:51 ЛС | профиль | цитата
ric писал(а):
не работаю или требуют установленного офиса.

Моя попытка создать файл XLSX без использования EXCEL.
https://forum.hiasm.com/getfile/39439
карма: 9

3
файлы: 1Create XLSX file.zip [4.8KB] [52]
Голосовали:tig-rrr, ric, andrestudio
Ответов: 161
Рейтинг: 3
#8: 2022-05-04 20:43:30 ЛС | профиль | цитата
Gunta писал(а):

Моя попытка создать файл XLSX без использования EXCEL.

Работает, еще бы цвет бы передавался, был бы идеал.
Спасибо хоть за это.

Редактировалось 1 раз(а), последний 2022-05-05 15:33:43
карма: 1

0
Ответов: 333
Рейтинг: 49
#9: 2022-05-06 12:51:13 ЛС | профиль | цитата
Вот ещё один способ как можно создать файл XLSX без Excel.
Вставил на страницу кнопку «Export table to excel».
https://forum.hiasm.com/getfile/39442

Редактировалось 2 раз(а), последний 2022-05-06 18:12:10
карма: 9

0
Ответов: 161
Рейтинг: 3
#10: 2022-05-07 08:38:27 ЛС | профиль | цитата
Gunta писал(а):
Какой у тебя windows? Какая версия офиса? Принципиально нужен XLS или XLSX тоже пойдёт?

windows=10
Какая версия офиса=2016 на работе дома отсутствует
XLS или XLSX тут особой разницы нет.


Gunta писал(а):
Вот ещё один способ как можно создать файл XLSX без Excel.
Вставил на страницу кнопку «Export table to excel».

это как вариант да


Редактировалось 6 раз(а), последний 2022-05-07 08:43:03
карма: 1

0
Ответов: 5036
Рейтинг: 562
#11: 2022-05-18 00:00:49 ЛС | профиль | цитата
ric писал(а):
нашел вот такую штуку

Так просто на дороге валялась что ли, во блин везёт

Ну а кроме шуток то в той версии неудачные детекторы типов, ну и до кучи всё таки очень старый стандарт типа win95 либо заголовок неполный.
Короче сделал я себе такую штуку (уеба... правда не на шутку но думаю оно того стоило)
Собрал xf.dll которая умеет создавать и читать файлы xls формата офиса 1997-2003 с защитой паролем без присутствия офиса в системе. Причём после редакции в 2007 к примеру они остаются рабочими для чтения.

извиняйте но схемку дать немогу так как там весь фарш. Да и хватит так то за НЕ спасибо всё направо налево раздавать
так что только картинка


dll конечно можно прилинковать что бы не таскать (а наверно так и сделаю)
кому интересно как это работает https://forum.hiasm.com/getfile/39459

Редактировалось 2 раз(а), последний 2022-05-18 06:14:59
карма: 5
0
Ответов: 5036
Рейтинг: 562
#12: 2022-05-18 01:18:03 ЛС | профиль | цитата
Gunta писал(а):
Моя попытка создать файл XLSX без использования EXCEL.

Так то оно хорошо НО. К примеру у меня старая семёрка и видать в то время по умолчанию для домашних рабочих станций (хотя у меня проф версия) powershell не установлен, а включать его не хочу из соображений безопасности. Хотя в домене управлять политиками, крутить машинками пользователей для админа вещь неоценимая! Короче так мне твои штуки покрутить не повелось пока, но видно что сила воли+характер там присутствуют
карма: 5
0
Ответов: 5036
Рейтинг: 562
#13: 2022-05-18 11:47:40 ЛС | профиль | цитата
Ну что же, сказано сделано. демка https://forum.hiasm.com/getfile/39460
Влепил в компонент, вшил dll ~170kb жмякнул штатный UPX

конфигурация такая получилась


[Property]
FileName=Имя файла XLS(97-2003) для открытия/сохранения|2|
SheetName=Имя страницы для сохранения файла|2|Страница1
Password=Пароль для открытия/сохранения файла|2|
Delimetr=Разделитель для CSV формата данных|2|;


[Methods]
doSaveXLS=Сохраняет данные в XLS файл|1|
doLoadXLS=Загружает данные из XLS файла|1|
onOutCSV=Событие происходит после открытия файла и выдаёт в поток данные формата CSV|2|
*onPos=Событие выводит позицию прогресса для опраций открытия/сохранения файла|2|
*onMax=Событие выводит максимальную величину прогресса перед началом операций|2|
InCSV=Список данных в формате CSV для создания файла|4|2
FileName=Имя файла XLS(97-2003) для открытия/сохранения|4|2
*SheetName=Имя страницы для сохранения файла|4|2
*Password=Пароль для открытия/сохранения файла|4|2


--- Добавлено в 2022-05-18 11:52:41

Усё, от CSV буду уходить

Редактировалось 1 раз(а), последний 2022-05-18 11:52:41
карма: 5
0
Ответов: 5036
Рейтинг: 562
#14: 2022-05-18 14:36:29 ЛС | профиль | цитата
Итак ребяты остановится я не смог

смотрел, смотрел я на свою схемку ну да, добывать данные попарсить для поиска это неплохо. И тут осенило что всё мысля мимо проходила
Всё оказалось проще. Сделал расширенный StringTableEx Все кишки родные кроме методов загрузки и сохранения. Ну туда мои просто как по маслу влезли и вуаля

Теперь достаточно взять льбую нужную схему и в текстовом редакторе сменить StringTable на StringTableEx и на выходе получаете более защищённую модель, нехило правда вот демка если кто не верит https://forum.hiasm.com/getfile/39461 dll вшита
карма: 5
0
Ответов: 333
Рейтинг: 49
#15: 2022-05-18 20:35:19 ЛС | профиль | цитата
Также прикрутил dll. Теперь можно выбирать стиль создаваемой таблицы.
Если кому-то будет нужна документация на dll-ку, то выложу отдельно (5 Мб).
https://forum.hiasm.com/getfile/39462

Ссылка на документацию к DLL - https://disk.yandex.ru/d/-G-a7N5vP9F1kA

Редактировалось 1 раз(а), последний 2022-05-18 21:00:36
карма: 9

0
файлы: 1Create XLSX without Excel DLL.zip [416.3KB] [18]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)