|   |   | 
| 
 | удалить строку в excell документе | ☑ | ||
|---|---|---|---|---|
| 0
    
        alekosansey 31.05.22✎ 13:13 | 
        Добрый день. Парсю документ excell с помощью ТабличногоДокумента. Проверяю если он есть то я его должен в доке эту строку удалить. Зная номер строки как можно удалить. Заранее спасибо
 табДок = Новый ТабличныйДокумент; Попытка табДок.Прочитать(СтрокаТД.ТекстовыйДокумент); Исключение УспешнаяОперация = Ложь; ЗаписьЖурналаРегистрации("СозданиеДокументовРеестровПлатежейKassa24", УровеньЖурналаРегистрации.Ошибка, Метаданные.Документы.ТАС_РеестрПлатежейПлатежнойСистемы, , "Ошибка при попытке чтение таблицы excell с данными файла-реестра. |"+СтрШаблон("Дата реестра: ""%1"", имя файла: ""%2""",СтрокаТД.ДатаРеестра,СтрокаТД.ИмяФайла)+" |Описание ошибки: |"+ОписаниеОшибки(), РежимТранзакцииЗаписиЖурналаРегистрации.Независимая); Прервать; КонецПопытки; КоличествоСтрок = табДок.ВысотаТаблицы; Для сч = 8 По КоличествоСтрок Цикл Попытка Если ЗначениеЗаполнено(Строка(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0;") + "C" + 2).ТекущаяОбласть.Текст)) Тогда Нстрока = ДокументРеестр.Платежи.Добавить(); ДатаТекСтроки = табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0;") + "C" + 2).ТекущаяОбласть.Текст; МассивДаты = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Лев(ДатаТекСтроки,10),"/"); ДатаЯчейки = МассивДаты[2]+МассивДаты[1]+МассивДаты[0]; МассивВремя = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Прав(ДатаТекСтроки,8),":"); ВремяЯчейки = ?(СтрДлина(МассивВремя[0])=1,"0"+МассивВремя[0] +МассивВремя[1]+МассивВремя[2],МассивВремя[0] +МассивВремя[1]+МассивВремя[2]); ДатаВОбщем = Дата(ДатаЯчейки + ВремяЯчейки); НомерАбонента = Строка(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0") + "C" + 6).ТекущаяОбласть.Текст); Займ = ТАС_ОбработкаСобытий.НайтиДоговорПоНомеру(НомерАбонента); Если ЗначениеЗаполнено(Займ) Тогда Нстрока.ДатаОплаты = ДатаВОбщем; Нстрока.НомерПлатежа = Строка(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0") + "C" + 4).ТекущаяОбласть.Текст); Нстрока.Сумма = Число(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0") + "C" + 9).ТекущаяОбласть.Текст); Нстрока.НомерАбонента = Строка(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0") + "C" + 6).ТекущаяОбласть.Текст); Нстрока.ИмяФайла = СтрокаТД.ИмяФайла; Нстрока.ПлатежнаяСистема = СтрокаТД.ПлатежнаяСистема; УдаляемыеСтроки.Добавить(сч); КонецЕсли; КонецЕсли; Исключение УспешнаяОперация = Ложь; ЗаписьЖурналаРегистрации("СозданиеДокументовРеестровПлатежейKassa24", УровеньЖурналаРегистрации.Ошибка, Метаданные.Документы.ТАС_РеестрПлатежейПлатежнойСистемы, , "Ошибка при попытке обработки строки с данными файла-реестра. |"+СтрШаблон("Дата реестра: ""%1"", имя файла: ""%2""",СтрокаТД.ДатаРеестра,СтрокаТД.ИмяФайла)+" |Номер строки: "+НомерСтроки+" |Описание ошибки: |"+ОписаниеОшибки(), РежимТранзакцииЗаписиЖурналаРегистрации.Независимая); Прервать; КонецПопытки; КонецЦикла; КонецЕсли; | |||
| 1
    
        unbred 31.05.22✎ 13:15 | 
        excell .. чот кровь брызнула из глаз.     | |||
| 2
    
        alekosansey 31.05.22✎ 13:16 | 
        )). Да бывает. Платежные сервисы присылают реестр в виде excell. Вообще ад     | |||
| 3
    
        unbred 31.05.22✎ 13:18 | 
        не вижу в коде .delet() где ты вообще что удаляешь? (2) я про то, как ты excel обозвал.     | |||
| 4
    
        alekosansey 31.05.22✎ 13:20 | 
        Я не использую ole библиотеку. В коде нету удаление. Я спрашиваю как это сделать если грузишь excell через Табличный документ. А почему использую Табличный документ это связано с linux сервером там нету данной библиотеке     | |||
| 5
    
        yopQua 31.05.22✎ 13:30 | 
        (1) да у него cells в голове
 (0) ну табдок.удалитьобласть() видимо | |||
| 6
    
        alekosansey 31.05.22✎ 13:34 | 
        Спасибо посмотрю     | |||
| 7
    
        Garykom гуру 31.05.22✎ 14:36 | 
        Копируй в новый пустой документ только нужные строки
 Ненужные (которые "удалить") не копируй, пропускай... | |||
| 8
    
        Garykom гуру 31.05.22✎ 14:36 | 
        (7)+ И да замерь время удаления и копирования в новый
 Интересно какая будет разница | |||
| 9
    
        yopQua 31.05.22✎ 14:51 | 
        (7) после этого
 табДок.Прочитать(СтрокаТД.ТекстовыйДокумент); там не все подряд будет? | |||
| 10
    
        Woldemar22LR 31.05.22✎ 17:16 | 
        А VBA  никак нельзя использовать?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |