Страницы: 1
RSS
Как преобразовать XLSX в CSV ?
 
Добрый день!

Задача – направить информацию на Госуслуги.
Исходная таблица в Excel имеет 10 столбцов ,  в каждом столбце более 20 строк. Файл xlsx по требованиям сайта необходимо преобразовать (сохранить как ) в csv (разделители запятые). После преобразования вид таблицы (при открытии csv  в Excel) остается тем . Такой файл не принимается: ОШИБКА В КОЛИЧЕСТВЕ СТРОК

В то же время  в шаблоне, приведенном на сайте ( форма  - тот же Excel),  все данные (через запятые) помещены в столбце А , а в другом примере – в текстовом файле в виде одной строки.

Как преобразовать исходную таблицу к такой строке?
Изменено: Юрий М - 03.09.2021 00:32:46
 
Во вложении файлы :
исходный NitriMAX 2. xlsx,
преобразованный   NitriMAX 2.csv,
шаблон,
пример того, что должно было получиться
и отчет об ошибке
 
У Вас названия полей в первой строке исходного файла не соответствуют Шаблону. Например, в шаблоне: "Модель/вариант", у Вас "Модель". В шаблоне поля разделяются запятой, у Вас - точкой с запятой. В графе "Количество", вероятно, ожидается число, а у Вас - текст.
Как выводить файлы csv с разделителем "запятая" - на этом сайте много тем, посвященных формату csv.
Владимир
 
Спасибо.

Действительно, если открыть полученный  CSV в Блокноте, то разделители - ;  Почему?
Кроме того, у меня после "Сокранить как ... CSV (  разделители запятые)"  при открытии в Excel получается таблица с теми же  десятью  столбцами,
а в шаблоне (тоже  в Excel)   все наименования столбцов помещаются через запятые  в одном столбце А
Цитата
sokol92 написал:
Как выводить файлы csv с разделителем "запятая" - на этом сайте много тем, посвященных формату csv.
Укажите, пожалуйста, подходящую.
Изменено: vikttur - 04.09.2021 11:37:40
 
Цитата
Андрей Бухалев написал:
Укажите, пожалуйста, подходящую.
Поискать и дать Вам ссылку?
 
Я же не Вас просил.
 
Переформулирую: Владимир должен поискать и дать Вам ссылку?
 
Цитата
Андрей Бухалев написал: Укажите, пожалуйста, подходящую.
вбейте в поиск:
Local:=True
И получите кучу тем именно про сохранение с разделителями и если чуть углубитесь, даже сможете понять почему:
Цитата
Андрей Бухалев написал: если открыть полученный  CSV в Блокноте, то разделители - ;
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Владимир должен поискать и дать Вам ссылку?
Упаси бог! Никто никому ничего не должен. Но если захочет помочь...

Цитата
Дмитрий(The_Prist) Щербаков написал: И получите кучу тем именно про
Любимый совет многих завсегдатаев всех форумов: "Поищи в инете"
 
Цитата
Андрей Бухалев написал:
любимый совет многих завсегдатаев всех форумов
любимый ответ ленивых новичков.
Я Вам дал конкретный поисковый запрос для ФОРУМА, который достаточно скопировать и вбить в станице Поиск форума и который я сам проверил прежде чем написать про него. Если бы Вы потрудились сделать тоже самое, что и я, то поняли бы, что дать Вам именно запрос было правильнее, чем постить сюда кучу ссылок из этого запроса.
Изменено: Дмитрий(The_Prist) Щербаков - 04.09.2021 12:25:26
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Андрей Бухалев написал:
Про разделители  кто-нибудь знает?
конечно да. Если бы Вы потрудились сделать поисковый запрос в форум, как это сделал я(прежде чем дать Вам текст запроса) - то Вы бы сами уже давно узнали. Переписывать Вам все обсуждения из найденных тем мне вообще нет желания, т.к. от Вас нет конкретного вопроса что именно непонятно из найденных решений.
И еще к слову об этом:
Цитата
Андрей Бухалев написал:
Любимый совет многих завсегдатаев всех форумов: "Поищи в инете"
выдержка из правил форума:
Цитата
Прежде чем задать вопрос - поищите на него ответ поиском по форуму и посмотрите статьи в Приемах. Здесь уже обсуждалось более 45 000 вопросов - вполне возможно (и даже скорее всего!), кто-то уже нашел решение.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А на простой для  вопрос :"Как сделать , чтобы после Сохранить как CSV (разделители запятые)" текст получался именно с запятыми, а не с точками с запятой" кто-нибудь может ответить?
Заранее благодарен!
 
Цитата
Андрей Бухалев написал:
кто-нибудь может ответить?
я могу. При сохранении кодом указываете ключевой параметр Local:=True. Или False. Проверяете на своем ПК какой вариант даст верный результат. ВСЕ. Но прежде в любом случае я настоятельно бы рекомендовал ознакомиться с темами по данному мной поисковому запросу(Local:=True). Т.к. в случае с CSV могут быть нюансы при выполнении кода на разных ПК.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо.
Что значит   при сохранении кодом указываете ключевой параметр Local:=True. Или False  я не понимаю. Но, воспользовавшись советом из похожей темы, заменил в Региональных параметрах  вид разделителя с точки с запятой на запятую.Ничего не получилось: при открытии преобразованного из xlsx в csv файла в текстовом редакторе все равно разделители- точки с запятой.И вот это особенно важно :
у меня после "Сокранить как ... CSV (  разделители запятые)"  если открыть сохраненный файл  в Excel,  получается таблица с теми же  десятью  столбцами,
а в шаблоне  (тоже  Excel) на сайте Госуслуг   все наименования столбцов помещаются через запятые  в одном столбце А

Дмитрий(The_Prist) Щербаков, Ваша подпись напомнила мне другое изречение ( из Мэрфи): "Любая, даже очень сложная, задача имеент простое, легко понимаемое, неправильное решение"
 
Простой макрос, он сохранит в нужном формате.Свой путь припишете
Код
Sub Макрос1()
    ActiveWorkbook.SaveAs Filename:="C:\Users\doober\Downloads\Test (5).csv", _
        FileFormat:=xlCSV, local:=False
End Sub
 
Цитата
Андрей Бухалев написал:
Что значит   при сохранении кодом указываете ключевой параметр Local:=True. Или False  я не понимаю
Примерно вот это значит:
Код
Sub SaveAsCSVComma()
    Dim sf$, lp&
    sf = ActiveWorkbook.FullName
    lp = InStrRev(sf, ".")
    If lp > 0 Then
        sf = Mid(sf, 1, lp) & "csv"
    Else
        sf = sf & ".csv"
    End If
    ActiveWorkbook.SaveAs Filename:=sf, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub
это готовый код, который по идее должен сформировать то, что Вам надо. И Вам придется разобраться как его использовать в Вашей ситуации. Создаете в книге Стандартный модуль(где располагаются модули - Что такое модуль? Какие бывают модули?) и вставляете туда приведенный выше код. После этого останется открыть нужную книгу и запустить этот код(Alt+F8 - выбрать SaveAsCSVComma)
Изменено: Дмитрий(The_Prist) Щербаков - 04.09.2021 16:24:30
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,

Это не мой уровень, но следуя Вашим  указаниям, мне удалось получить из исходного  NitriMAX 1.xlsx  файл  NitriMAX 1.xlsm, а затем  NitriMAX 1.csv - в том виде, который показан в шаблоне.  Тем не менее, Госуслуги его не принимают, отчет об ошибке -   Отчет.csv
Может быть, что-то не соответствует их требованиям?:
Формат файла с данными: текстовый с разделителями, в кодировке ANSI

Первая строка — заголовки столбцов. Разделитель — символ запятая.
Для получения файла в нужном формате при сохранении файла в приложении Excel выберите тип «CSV ( разделители - запятые)»..doober, Вам также спасибо!
Изменено: Андрей Бухалев - 04.09.2021 22:03:17 (добавление текста)
 
Почему-то не подгрузились файлы. Пробую еще
 
Возможно не там копаете и запятые в ячейке мешают
 
Я тоже так подумал. Но при преобразовании текст с запятыми был взят в кавычки ( не мной, самой программой). Потом я на всякий случай убрал все запятые. Кавычки тоже исчезли. Но это не помогло. Ошибка и отчет, смысл  которого я не могу понять.
 
Мне кажется, что проблему можно выявить только если узнать у Госуслуг что им не нравится и почему именно. Потому что возможен и такой вариант, что просто что-то не доработано именно на их стороне - такое уже бывало на моей памяти.
Обратите внимание, что в отчете указание именно на несоответствие кол-ва колонок. Возможно просто Ваши данные не отвечают их требованиям. Например, если из данных вовсе удалить все запятые, кроме разделяющих столбцы? Например, заменить их на ту же точку-с-запятой:
Код
Sub SaveAsCSVComma()
    Dim sf$, lp&
    sf = ActiveWorkbook.FullName

    ActiveSheet.Cells.Replace ",", ";", xlPart 'подменяем запятую точкой-с-запятой
    lp = InStrRev(sf, ".")
    If lp > 0 Then
        sf = Mid(sf, 1, lp) & "csv"
    Else
        sf = sf & ".csv"
    End If
    ActiveWorkbook.SaveAs Filename:=sf, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub
Это должно так же избавить и от кавычек вокруг таких строк и возможно, это прокатит. Но не факт. Возможно, не нравится что-то еще(слеши, например). А может столбцов реально больше или меньше, чем должно быть в эталонном отчете. Проверьте все досконально. Потому что в изначально приложенных файлах кол-во столбцов у Вас и в эталонном отчете отличается. У Вас на 2 больше. плюс названия столбцов тоже не соответствуют - возможно, это тоже влияет.
Изменено: Дмитрий(The_Prist) Щербаков - 05.09.2021 14:11:10
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Конечно, я им пишу, они отвечают раз в неделю. Ничего вразумительного, просят   предоставить пошаговые скриншоты во время возникновения проблемы с  отображением системного времени и датой, а так же лог-браузера в формате  .har по вкладкам "Network" и "Console" . Придется узнать, что это такое.
Что касается запятых, я их удалил вручную, заменив пробелами. Результат тот же.
Заметьте, это не какая-то экзотика, это теперь так  должна проводиться рутинная процедура подачи заявки на получение разрешения на ввоз из-за границы образцов медицинских изделий для регистрации. И делать это должны не программисты, а девочки-менеджеры в компаниях-дилерах.  Понятно, не получается ни у кого. Еще недавно было: прислал бумажку - получил бумажку...
 
Самое забавное, что образец, которому должен соответствовать документ, меняется на их сайте несколько раз в день. Вот последний.PRIMER_KOMPLECT_SET.csv (425 Б) . Что означают знаки в первом столбце - неясно
Изменено: Андрей Бухалев - 05.09.2021 21:43:04 (опечатка)
Страницы: 1
Наверх