|
удалить строку в 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 никак нельзя использовать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |