Имя: Пароль:
1C
1С v8
Програмное изменение ширины колонки в файле CSV через Ексель
0 serg-lom89
 
15.04.16
10:52
Добрый день
Есть файл CSV
Его я открываю с помощью ексель.

Но тут такой косяк получается что ,что ширина колонок маленькая и некоторые значения видны в отладчике  как ###########/

Как мне в данном случае изменить ширину колонок и записать этот
этот файл уже с измененными данными?

Вот кусок кода

    Попытка
        Excel = Новый COMОбъект("Excel.Application");
        Excel.WorkBooks.Open(ПутьКФайлу);
        Состояние("Обработка файла Microsoft Excel...");
    Исключение
        Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
    Попытка
        Excel.Sheets(1).Select(); // лист 1, по умолчанию
    Исключение
        Excel.ActiveWorkbook.Close();
        Excel = 0;
        Сообщить("Файл "+Строка(ПутьКФайлу)+" не соответствует необходимому формату! Первый лист не найден!");
        ОтменитьТранзакцию();
        Возврат;
    КонецПопытки;
    
    //Получим количество строк и колонок.
    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
    Если Версия = "8" тогда
        ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
        ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
        ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
        ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
    Конецесли;    
    
    Для НомерСтолбца =1 по  ФайлКолонок Цикл
         ТекСтолбец =Excel.Sheets(1).Columns(НомерСтолбца).ColumnWidth = 30; ;
    КонецЦикла;

хотя он стандартый взят
1 serg-lom89
 
15.04.16
11:08
up-ну тему)
2 Лодырь
 
15.04.16
11:10
В каком формате вы собираете записать файл?
3 serg-lom89
 
15.04.16
11:14
(2) хотелось бы снова его записать в csv
4 Лодырь
 
15.04.16
11:14
(3) Не получится. Формат csv не предусматривает информации о ширине колонок. Там нет такого понятия.
5 silent person
 
15.04.16
11:14
csv это текст с разделителями, нафига Excel ?
6 serg-lom89
 
15.04.16
11:19
(5) это верно..но там есть косяки в самом файле что присылают.разделитель бывает в наименование и иногда в прочих колонках.Разделитель менять ребята что будут присылать файл не будут((
7 Dedal
 
15.04.16
11:21
(6) Проверять поступившую информацию на запрещенные символы. удалять.
8 serg-lom89
 
15.04.16
11:25
Как тогда изменить мой формат csv на Ексель ?через 1с конечно было бы сделать ,что бы пользователь не замарачивался
9 Лодырь
 
15.04.16
11:43
(8)
Выбирай:
1. Открыть из 1с эксель, открыть из него csv и сохранить в xls.
2. Прочитать в 1С, запихать в табличный документ и сохранить в xls.
10 serg-lom89
 
15.04.16
11:47
(9) а сам текущий файл поменять на ексель?
11 mikecool
 
15.04.16
11:49
(6) тебе присылают некондицию и ты мучаешься, оно тебе надо?
12 serg-lom89
 
15.04.16
11:50
(11) мне это не надо)))
надо другим(
13 Fedor-1971
 
15.04.16
11:57
(12) глупством маешься.
читай полученный CSV как текстовый файл прямо из 1С,
стр=фл.Получитьстроку(НомерСтроки)
масСтр=СтрЗаменить(стр,";", символы.ПС);
если ЧислоСтрок(масСтр) = КоличествоТвоихКолонок тогда
  нормально, разбираем строку и радуемся жизни
Иначе
  пиши для разбора строки, например в Лог-файл
КонецЕсли;
14 Fedor-1971
 
15.04.16
11:58
13 вместо ЧислоСтрок = стрЧислоСтрок - лопухнулся, каюсь
15 Лодырь
 
15.04.16
12:02
(13) Откройте для себя
СтрЧислоВхождений(<Строка>, <ПодстрокаПоиска>)
СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
и другие новые функции работы со строками
16 Fedor-1971
 
15.04.16
12:09
(15) Во на как, я предложил один из возможных вариантов, достаточно универсальный для любой из 8.х
Можно и через регулярные выражения анализировать строку и конечный автомат нагородить. Это ТС решать, но он лезет в EXEL, для чего и зачем не понятно.
17 Лодырь
 
15.04.16
12:38
(16) Таки да, вы правы.
18 mingw
 
15.04.16
12:47
(0)
1. Валидный CSV " (кавычки) имеет. С обоих сторон текста.
2. Если CSV не валидный. См. п.1.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший