Имя: Пароль:
1C
 
Программно поменять формат файла
,
0 Бабачек
 
13.05.24
08:58
Здравствуйте, можно ли программно поменять расширение файла xls на xlsx? COM не читает xls, а фалики поступают в xls, чтобы руками не менять хочу сделать программно, возможно ли?
1 DrZombi
 
гуру
13.05.24
09:00
2 Волшебник
 
13.05.24
09:00
ПереместитьФайл
3 DrZombi
 
гуру
13.05.24
09:02
+ Вот тут веселей

Convert XLS to XLSX using REST-API in no time!
https://www.convertapi.com/xls-to-xlsx

Мона через АПИ... Но платно :)
4 DrZombi
 
гуру
13.05.24
09:03
(2) А если у них кома не будет, линух? :)
5 Волшебник
 
13.05.24
09:09
(4) Это функция 1С. Сказали только поменять расширение. Никто не просил менять содержимое.
6 timurhv
 
13.05.24
09:09
(4) Тогда
libreoffice --convert-to xlsx my.xls --headless
7 lEvGl
 
гуру
13.05.24
09:30
(0) может заюзать ТабличныйДокумент?
и новый эксель не может открыть старый файл, хотя бы для пересохранения, странно? странно
8 DrZombi
 
гуру
13.05.24
09:34
(6) И, без онлайна? Прикольно, спасибо :)
9 DrZombi
 
гуру
13.05.24
09:35
(7) Бывает, что ексели такие делают, что 1С уходит в аут :(
10 Волшебник
 
13.05.24
09:35
(7) Да, всё очень странненько-странненько...
11 DrZombi
 
гуру
13.05.24
09:37
(5) Возможно, не скрою, у ТС желание малое, но насущное есть у других :)
12 lEvGl
 
гуру
13.05.24
09:48
хэмммм.. откопал xls файл, открыл его 16ым екселем и пересохранил в xlsx, хоть и мышкой, но вполне успешно, весь апи этого чудо программного продукта в интернете, бесплатно между прочим)
(9) да понятно, но может ему пойдет
13 Бабачек
 
13.05.24
09:47
(12) понятное дело, что можно и руками и через конвертор расширений и тд, но нужно то программно.
Я написал обработку по прочтению экселя через COM, но он читает, только xlsx, а xls по нулям все.

Объект.ТабличнаяЧасть.Очистить();
    
    Попытка
    
        Эксель = Новый COMОбъект("Excel.Application");
        Эксель.Visible = 0;
        Эксель.DisplayAlerts = 0;
        
    Исключение
        
        Сообщить("Не удалось прочитать файл по причине: " + ОписаниеОшибки());
        Возврат;
        
    КонецПопытки;
    
    Книга = Эксель.Workbooks.Open(ВыбратьФайлДляЗагрузки);
    КоличествоЛистов = Книга.Sheets.Count;
    
    Лист = Книга.Sheets(1);
    
    КоличествоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
    КоличествоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
    
    Для НомерСтроки = 17 По КоличествоСтрок Цикл
        
        Если Лист.Cells(НомерСтроки, 2).Value = "Итого" Тогда
        
            Возврат;
        
        КонецЕсли;
        
        НоваяСтрока = Объект.ТабличнаяЧасть.Добавить();
        
        НоваяСтрока.ФИОРаботника = Лист.Cells(НомерСтроки, 2).Value;
        НоваяСтрока.КоличествоПредоставленныхОбедов = Лист.Cells(НомерСтроки, 4).Value;
        НоваяСтрока.СтоимостьОдногоОбеда = Лист.Cells(НомерСтроки, 5).Value;
        НоваяСтрока.СтоимостьПредоставленногоБесплатногоПитания = Лист.Cells(НомерСтроки, 6).Value;
    
    КонецЦикла;
    
    Эксель.Workbooks.Close();
    Эксель.Quit();

Может это переделать где-то надо, чтобы xls читался этот, версию или еще что
14 DrZombi
 
гуру
13.05.24
09:48
Оставлю тут, мало ли...

Conversion API
https://support.r7-office.ru/document_server/api-document_server/more_api/conversion-api/

Для взаимодействия с сервисом конвертации документов используются POST-запросы. Параметры запроса вводятся в формате JSON в теле запроса. Запросы отправляются на адрес https://documentserver/ConvertService.ashx, где documentserver — это имя сервера, на котором установлен Сервер документов Р7.

Сервер документов
https://r7-office.ru/server-dokumentov

Судя по проспекту, он может устанавливаться в локальную архитектуру сети :)

Оплата правда, годовая :(
15 DrZombi
 
гуру
13.05.24
09:49
(13) екселю все ровно, какое расширение у файла, он по содержимому определяет.
16 DrZombi
 
гуру
13.05.24
09:51
+(0) Вы только помните, смена расширения у файла, не меняет его внутреннее содержимое. xlsx - это другой формат хранения данных, больше напоминает ZIP, т.к. его распаковывают и содержит этот архив некую структуру XML файликов и папок. :)
17 lEvGl
 
гуру
13.05.24
10:20
(13) так и откройте/пересохраните программно
если это надо. Так то способов чтения ексель в интернете 100500, если у вас не работает, значит что то не так. Через приложение с бородатых годов читали, когда xlsx еще и не было. Но вобще аппликатион - лажа, через adodb было веселее и быстрее
18 АгентБезопасной Нацио
 
13.05.24
12:09
(16) почему xlsx "больше напоминает zip"? Это и есть zip, содержащий xml-файлы. А xls - это compound.
19 Irbis
 
13.05.24
12:27