Задача – направить информацию на Госуслуги. Исходная таблица в Excel имеет 10 столбцов , в каждом столбце более 20 строк. Файл xlsx по требованиям сайта необходимо преобразовать (сохранить как ) в csv (разделители запятые). После преобразования вид таблицы (при открытии csv в Excel) остается тем . Такой файл не принимается: ОШИБКА В КОЛИЧЕСТВЕ СТРОК
В то же время в шаблоне, приведенном на сайте ( форма - тот же Excel), все данные (через запятые) помещены в столбце А , а в другом примере – в текстовом файле в виде одной строки.
Как преобразовать исходную таблицу к такой строке?
У Вас названия полей в первой строке исходного файла не соответствуют Шаблону. Например, в шаблоне: "Модель/вариант", у Вас "Модель". В шаблоне поля разделяются запятой, у Вас - точкой с запятой. В графе "Количество", вероятно, ожидается число, а у Вас - текст. Как выводить файлы csv с разделителем "запятая" - на этом сайте много тем, посвященных формату csv.
Действительно, если открыть полученный CSV в Блокноте, то разделители - ; Почему? Кроме того, у меня после "Сокранить как ... CSV ( разделители запятые)" при открытии в Excel получается таблица с теми же десятью столбцами, а в шаблоне (тоже в Excel) все наименования столбцов помещаются через запятые в одном столбце А
Цитата
sokol92 написал: Как выводить файлы csv с разделителем "запятая" - на этом сайте много тем, посвященных формату csv.
Андрей Бухалев написал: любимый совет многих завсегдатаев всех форумов
любимый ответ ленивых новичков. Я Вам дал конкретный поисковый запрос для ФОРУМА, который достаточно скопировать и вбить в станице Поиск форума и который я сам проверил прежде чем написать про него. Если бы Вы потрудились сделать тоже самое, что и я, то поняли бы, что дать Вам именно запрос было правильнее, чем постить сюда кучу ссылок из этого запроса.
Андрей Бухалев написал: Про разделители кто-нибудь знает?
конечно да. Если бы Вы потрудились сделать поисковый запрос в форум, как это сделал я(прежде чем дать Вам текст запроса) - то Вы бы сами уже давно узнали. Переписывать Вам все обсуждения из найденных тем мне вообще нет желания, т.к. от Вас нет конкретного вопроса что именно непонятно из найденных решений. И еще к слову об этом:
Цитата
Андрей Бухалев написал: Любимый совет многих завсегдатаев всех форумов: "Поищи в инете"
Прежде чем задать вопрос - поищите на него ответ поиском по форуму и посмотрите статьи в Приемах. Здесь уже обсуждалось более 45 000 вопросов - вполне возможно (и даже скорее всего!), кто-то уже нашел решение.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
А на простой для вопрос :"Как сделать , чтобы после Сохранить как CSV (разделители запятые)" текст получался именно с запятыми, а не с точками с запятой" кто-нибудь может ответить? Заранее благодарен!
я могу. При сохранении кодом указываете ключевой параметр Local:=True. Или False. Проверяете на своем ПК какой вариант даст верный результат. ВСЕ. Но прежде в любом случае я настоятельно бы рекомендовал ознакомиться с темами по данному мной поисковому запросу(Local:=True). Т.к. в случае с CSV могут быть нюансы при выполнении кода на разных ПК.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Спасибо. Что значит при сохранении кодом указываете ключевой параметр Local:=True. Или False я не понимаю. Но, воспользовавшись советом из похожей темы, заменил в Региональных параметрах вид разделителя с точки с запятой на запятую.Ничего не получилось: при открытии преобразованного из xlsx в csv файла в текстовом редакторе все равно разделители- точки с запятой.И вот это особенно важно : у меня после "Сокранить как ... CSV ( разделители запятые)" если открыть сохраненный файл в Excel, получается таблица с теми же десятью столбцами, а в шаблоне (тоже Excel) на сайте Госуслуг все наименования столбцов помещаются через запятые в одном столбце А
Дмитрий(The_Prist) Щербаков, Ваша подпись напомнила мне другое изречение ( из Мэрфи): "Любая, даже очень сложная, задача имеент простое, легко понимаемое, неправильное решение"
Андрей Бухалев написал: Что значит при сохранении кодом указываете ключевой параметр 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)
Это не мой уровень, но следуя Вашим указаниям, мне удалось получить из исходного 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 больше. плюс названия столбцов тоже не соответствуют - возможно, это тоже влияет.
Конечно, я им пишу, они отвечают раз в неделю. Ничего вразумительного, просят предоставить пошаговые скриншоты во время возникновения проблемы с отображением системного времени и датой, а так же лог-браузера в формате .har по вкладкам "Network" и "Console" . Придется узнать, что это такое. Что касается запятых, я их удалил вручную, заменив пробелами. Результат тот же. Заметьте, это не какая-то экзотика, это теперь так должна проводиться рутинная процедура подачи заявки на получение разрешения на ввоз из-за границы образцов медицинских изделий для регистрации. И делать это должны не программисты, а девочки-менеджеры в компаниях-дилерах. Понятно, не получается ни у кого. Еще недавно было: прислал бумажку - получил бумажку...
Самое забавное, что образец, которому должен соответствовать документ, меняется на их сайте несколько раз в день. Вот последний.PRIMER_KOMPLECT_SET.csv(425 Б) . Что означают знаки в первом столбце - неясно
Изменено: Андрей Бухалев - 05.09.2021 21:43:04(опечатка)