Как Сохранить Excel в Txt Без Кавычек • Разделитель запятая в csv
VBA Excel. Операторы чтения и записи в файл
Оператор Input # считывает данные из открытого файла с последовательным доступом и присваивает эти данные переменным.
Оператор Input # используется только с файлами, открытыми в режиме Input или Binary. При прочтении стандартные строковые или числовые значения присваиваются переменным без изменения.
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Переменные – обязательный параметр, представляющий из себя список переменных, разделенных запятой, которым присваиваются значения, считанные из файла.
Особенности применения оператора Input #:
- Элементы данных в файле должны быть указаны в том же порядке, что и переменные в списке Переменные, и соответствовать им по типу данных. Если переменная числовая, а данные текстовые, этой переменной будет присвоено нулевое значение.
- Если при чтении данных достигнут конец файла, чтение прерывается и возникает ошибка. Для ее предупреждения в коде VBA Excel используется функция EOF.
- Чтобы данные из файла могли быть правильно прочитаны и записаны в переменные с помощью оператора Input #, они должны быть записаны в файл с помощью оператора Write #. Он обеспечивает правильное разделение каждого из полей (элементов) данных.
Оператор Line Input #
Оператор Line Input # считывает одну строку из открытого файла с последовательным доступом и присваивает ее значение строковой переменной.
Оператор Line Input # считывает из файла по одному символу до тех пор, пока не встретится символ возврата каретки (Chr(13)) или последовательность символа возврата каретки и перевода строки (Chr (13) + Chr(10)).
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Переменная – обязательный параметр, представляющий из себя имя переменной, объявленной как String или Variant, которой присваивается строка, считанная из файла.
Оператор Write #
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Данные – необязательный параметр, представляющий из себя одно или несколько числовых или строковых выражений, разделенных запятой, которые нужно записать в файл.
Особенности применения оператора Write #:
- Данные, записанные с помощью оператора Write #, считываются из файла с помощью оператора Input #.
- Если опустить параметр Данные и добавить запятую после Номер_файла, в файл будет добавлена пустая строка.
- Несколько выражений в списке Данные могут быть разделены точкой с запятой или запятой.
- Числовые данные всегда записываются с точкой в качестве разделителя целой и дробной части.
- Оператор Write # вставляет запятые между элементами и прямые парные кавычки вокруг строк при их записи в файл.
- После записи в файл последнего символа из параметра Данные оператор Write # вставляет символы возврата каретки и перевода строки (Chr (13) + Chr(10)).
Функция EOF
Функция EOF возвращает логическое значение True, когда достигнут конец файла, открытого для последовательного (Input) или произвольного (Random) доступа.
Номер_файла – это номер, присвоенный файлу при открытии с помощью оператора Open.
Функция EOF используется для предупреждения ошибок, вызываемых попытками выполнить чтение после конца файла. Она возвращает значение False, пока не будет достигнут конец файла.
Примеры чтения и записи в файл
Пример 1
Открытие (или создание, если он не существует) текстового файла для чтения и записи и запись в него одной строки, состоящей из двух текстовых и одного числового значений. Файл с именем myFile1.txt будет создан в той же папке, где расположен файл Excel с кодом VBA.
Строки и число можно предварительно присвоить переменным, объявленным с соответствующими типами данных, и использовать их для записи данных в файл (в строках кода с оператором Write #, как в этом и следующем примерах).
Пример 2
Открытие (или создание, если он не существует) файла без расширения для чтения и записи и запись в него трех строк: двух текстовых и одной в числовом формате. Файл с именем myFile2 будет создан в той же папке, где расположен файл Excel с кодом VBA.
Так как у файла нет расширения, Windows выведет диалоговое окно для выбора открывающей его программы. Выберите любой текстовый редактор или интернет-браузер.
Пример 3
Считываем строку, разделенную на отдельные элементы, из файла myFile1.txt и записываем в три переменные, по типу данных соответствующие элементам.
Попробуйте заменить в этом примере строку Input #ff, str1, str2, num1 сначала на строку Input #ff, str1 , затем на строку Line Input #ff, str1 , чтобы наглядно увидеть разницу между операторами Input # и Line Input #.
В следующих примерах (4 и 5) замена оператора Input # на Line Input # не приведет ни к каким изменениям, так как данные в строках файла myFile2 не разделены на элементы (поля).
Пример 4
Считываем поочередно три строки из файла myFile2 и записываем в три элемента массива, объявленного как Variant, так как в этот файл ранее были записаны две строки с текстом и одна с числом.
Excel csv разделитель точка с запятой – ПК портал
- Откройте программу «Эксель». Обратите внимание, что ее нужно запускать не двойным кликом по файлу, который неверно отображается, а непосредственно программу с пустым листом.
- Перейдите во вкладку «Данные».
- Нажмите кнопку «Получение внешних данных», а в выпадающем меню выберите «Из текста».
- В появившемся окне проводника укажите путь к файлу, который имеет проблемы с кодировкой, и нажмите кнопку «Импорт».
- Теперь откроется непосредственно само окно «Мастера текстов». В нем необходимо изменить формат файла, именно поэтому нажмите на одноименный и выберите оттуда «Юникод (UTF-8)».
- Нажмите «Далее».
- Следующее окно также пропустите, нажав кнопку «Далее», все настройки в нем должны стоять по умолчанию.
- Теперь вам необходимо определить формат данных столбца файла и в соответствии с ним выбрать один из пунктов одноименного списка. По итогу нажмите «Готово».
Представленный метод аналогичен алгоритму «Импорт данных». Разница заключается в проведении подготовительных работ. Как перевести с Ворда в Эксель, чтобы сохранить максимально аккуратный вид копируемой информации? Чтобы подготовить текст, таблицы и списки к копированию, необходимо автоматизированно удалить лишние абзацы:
Формат csv разделитель точка с запятой
Как создается CSV файл вообще? С запятыми или с запятой? Любые советы, по которым можно использовать?
В Windows это зависит от экрана настройки «Язык и региональные стандарты», где вы найдете разделитель List. Это приложения char Windows, которые ожидаются как разделитель CSV.
Конечно, это имеет эффект только в приложениях Windows, например Excel не будет автоматически разделять данные на столбцы, если файл не использует вышеупомянутый разделитель. Все приложения, использующие региональные настройки Windows, будут иметь такое поведение.
Если вы пишете программу для Windows, которая потребует импортировать CSV в другие приложения, и вы знаете, что разделитель списков, установленный для ваших целевых компьютеров, , , затем перейдите к нему, иначе я предпочитаю ; , поскольку он вызывает меньше проблем с десятичными точками, группирует цифры и не появляется в большом количестве текста.
Я бы сказал, что придерживаюсь запятой, поскольку она широко признана и понята. Не забудьте указать ваши ценности и избежать ваших котировок.
CSV – стандартный формат, обозначенный в RFC 4180 (в 2005 году), поэтому нет стандарта. https://www.ietf.org/rfc/rfc4180.txt
И еще до этого C в CSV всегда стоял за Comma, а не для semiColon: (
Жаль, что Microsoft продолжает игнорировать это и все еще придерживается чудовищности, которую они превратили в десятилетия назад (да, я признаю, это было до создания RFC).
- Одна запись в строке, если в цитированном тексте не встречается новая строка (см. ниже).
- COMMA как разделитель столбцов. Никогда не используйте точку с запятой.
- PERIOD как десятичная точка в числах. Никогда не запятая.
- Текст, содержащий запятые, периоды и/или новые строки, заключенные в «двойные кавычки».
Только в том случае, если текст заключен в двойные кавычки, такие кавычки помечены в тексте, который вырвался удвоением. Эти примеры представляют собой те же три поля:
В стандарте не указаны значения даты и времени, лично я стараюсь придерживаться формата ISO 8601, чтобы избежать путаницы день/месяц/год – месяц/день/год.
Проблема экспорта ПЗ из Google вебмастер
Многие из нас используют Google инструмент для веб-мастеров только для добавления сайта. Это неправильно, здесь есть масса полезной информации, например список поисковых запросов, по которым пользователи находят и заходят на сайт. Смотрите отчет: Поисковый трафик > Поисковые запросы – предварительно выбрав нужный сайт в списке.
Здесь же есть и экспорта данных в CSV-формате, с возможностью его открытия в Google Таблицы (онлайн аналог Excel) . Ищите кнопку «Загрузить эту таблицу». К слову, количество отображаемых запросов на странице не влияет на полноту экспортируемых данных.
Проблема в том, что в CSV-файле используется разделитель запятой и кодировка UTF-8. Так что даже в Google Таблицы, вместо кириллицы, вы получите только набор вопросов.
Другими словами, нам нужно изменить кодировку на ANSI. А для открытия файла CSV в Excel заменить и разделитель запятой (,) на символ точки с запятой (;) .
CSV с разделителем запятая в UTF-8
Проблема с кодировкой
Проще всего решить проблему с кодировкой. Для этого вы можете использовать любой текстовый редактор с этой функцией, например Notepad++. Его вы можете скачать бесплатно на официальном сайте: unotepad-plus-plus.org. Далее запускаем редактор и открываем в нём наш CSV-файл, а потом кликаем пункт меню «Кодировки» и меняем на нужную, т.е. пункт «Преобразовать в ANSI».
У меня на картинке показан обратный процесс: преобразования из ANSI в UTF-8 – но, думаю, вы это и сами заметилии, а принцип тот же.
Разделитель запятая в CSV
Теперь, что касается разделителя запятой. По сути, для Google Таблиц что-то менять не надо. Да и в англоязычной версии MS Excel это может прокатить, проверьте. Тем не менее, если нужна замена, то здесь следует учесть, что просто заменить запятую (,) на символ точки с запятой (;) не получится, т.к. в файле могут быть значения, содержащие этот символ. Они обычно помещены в кавычки. Например:
По идее здесь должна помочь настройка самой операционной системы Windows: Пуск > Панель управления > Язык и региональные стандарты. На вкладке «Форматы» кликаем кнопку «Изменить этот формат…» В открывшемся окне, на вкладке «Числа» замените «Разделитель элементов списка» на нужный, т.е. символ точки с запятой (;) меняем на запятую (,) .
Правда, у меня это не сработало. Да и менять настройки операционной системы, как по мне, дело не благодатное. Тем не менее, я решил указать этот вариант решения проблемы, т.к. на большинстве специализированных форумов ссылаются именно на него.
То, что помогло
Увы, но какой-то дополнительной обработки файлов с расширением .csv в MS Excel я не нашел. Тем не менее, есть возможность обработки, но только в том случае, если сменить расширение файла, например, на .txt . Так что меняем расширение файла и открываем его в Excel.
Появится окно «Мастер текстов (импорт)». Здесь вы можете выбрать формат исходных данных, начальную строку импорта и кодировку файла (нам нужна 1251 : Cyrillic ) . К слову, почему нужно было менять кодировку, когда её можно выбрать в мастере? Потому, что кодировки UTF-8, по крайней мере у меня, здесь нету. Кликаем кнопку «Далее».
На последнем шаге можно указать формат данных столбцов, правда выбор здесь не велик: общий (по умолчанию) , текстовый, дата и пропустить столбец. Последний вариант представляется мне наиболее интересным, т.к. позволяет сразу исключить ненужные столбцы. Просто выберите соответствующий столбец и кликните для него вариант «пропустить столбец». Кликаем кнопку «Готово».
Excel сформирует нужную нам таблицу, где мы можем задать нужную ширину столбцов и формат ячеек, но это уже совсем другая история. Отмечу лишь, что есть проблема с распознанием тех же процентов.
Онлайн сервис для нормализации CSV-файлов
К слову, скрипт преобразовавает значение процентов, например: 95 % – в нужное значение для столбца «проценты» в Excel, т.е. делится на 100 и получаем число с плавающей запяток, например: 0,95 . Если нужны ещё какие-то преобразования: пишите, попробуем доработать.
Ну, а если предложенный онлайн сервис вас не устраивает, вы всегда можете воспользоваться выше приведённой инструкцией.
Подведём итоги
Сейчас в инете дофига различный csv конверторов, которые всё это понимают и настраивают. Да и софта такого рода хватает.
@Константин Кирилюк если судить по показателям соцкнопочек, то люди выбирают не самые простые решения и отдают предпочтение перекодированию, переименовыванию и мастертекстовованию 🙂
@Максим ну, не всё так сразу. К тому же популяризацией своего сервиса я не занимался, да и не стремлюсь. несколько опасаюсь нагрузок. Так что пусть используют вот такие, далеко не простые решения, а кому надо могут воспользоваться и сервисом.
Заметил траблу с Normalization CSV. Если в CSV файле присутствует символ бесконечности ∞ то на нём всё и стопорится, по крайней мере если делать смену кодировки из UTF-8 в ANSI.
@Максим да, была такая проблема. Пытался и так и эдак, но пришлось заменить этот символ на знак вопроса. Это самый оптимальный вариант, который я вижу на данный момент. Как я понял проблема в iconv мутках.
Помимо ‘,’ в Разделитель элементов списка в разделе Числа – Разделитель целой и дробной части поставьте ‘.’ и все заработает
Помимо ‘,’ в Разделитель элементов списка в разделе Числа – Разделитель целой и дробной части поставьте ‘.’ и все заработает
вот это очень помогло. спасибо анониму от анонима! большое спасибо!
В Notepad++ я записал макрос с такими действиями:
1. Найти все запятые , и заменить на точку с запятой ;
2. Найти все точки . и заменить их на запятые ,
3. Сохранить файл
Теперь любой «некирилличный» CSV преобразовывается одной командой и потом нормально открывается в Excel без изменений региональных настроек.
В этой статье мы изучим быстрые и эффективные способы экспорта данных из Excel в CSV и узнаем, как преобразовать файл Excel в CSV, сохранив без искажений все специальные и иностранные символы. Описанные в статье приёмы работают во всех версиях Excel 2013, 2010 и 2007.
Как преобразовать файл Excel в CSV
Замечание: Все упомянутые форматы сохраняют только активный лист Excel.
Вот так рабочий лист Excel можно сохранить как файл CSV. Быстро и просто, и вряд ли тут могут возникнуть какие-либо трудности.
Экспортируем из Excel в CSV с кодировкой UTF-8 или UTF-16
Если на листе Excel содержатся какие-либо специальные или иностранные символы (тильда, ударение и подобные) или иероглифы, то преобразование листа Excel в CSV описанным выше способом не сработает.
Простое решение – сохранить лист Excel как текстовый файл Unicode(.txt), и затем преобразовать его в CSV. Таким образом все символы, не входящие в ASCII, останутся в целости и сохранности.
Прежде чем двинуться дальше, позвольте мне кратко пояснить главные отличия между кодировками UTF-8 и UTF-16, чтобы в каждом индивидуальном случае Вы могли выбрать подходящий формат:
- UTF-8 – это более компактная кодировка, использующая для каждого символа от 1 до 4 байт. Чаще всего рекомендуется использовать этот формат, когда символы ASCII преобладают в файле, т.к. большинство таких символов требует 1 байт памяти. Ещё одно преимущество в том, что кодировка файла UTF-8, содержащего только символы ASCII, ничем не будет отличаться от такого же ASCII-файла.
- UTF-16 использует от 2 до 4 байт для хранения каждого символа. Учтите, что не во всех случаях файл UTF-16 требует больше места в памяти, чем файл UTF-8. Например, японские символы занимают от 3 до 4 байт в UTF-8 и от 2 до 4 байт в UTF-16. Таким образом, есть смысл использовать UTF-16, если данные содержат азиатские символы, в том числе Японские, Китайские и Корейские. Существенный недостаток этой кодировки в том, что она не полностью совместима с ASCII-файлами и требуются специальные программы для отображения таких файлов. Помните об этом, если планируете импортировать получившиеся файлы из Excel куда-то ещё.
Как преобразовать файл Excel в CSV UTF-8
Предположим, у нас есть лист Excel с иностранными символами, в нашем примере – это японские имена.
Чтобы экспортировать этот лист Excel в файл CSV, сохранив при этом все иероглифы, сделаем следующее:
Замечание: Не все простые текстовые редакторы полностью поддерживают символы Юникод, поэтому некоторые из них могут отображаться как прямоугольники. В большинстве случаев, это никак не повлияет на итоговый файл, и можно просто не обращать на это внимание или выбрать более продвинутый редактор, например, Notepad++.
- Так как в нашем текстовом Юникод файле в качестве разделителей используется символ табуляции, а мы хотим преобразовать его в CSV (разделители – запятые), то необходимо заменить символы табуляции на запятые.
Замечание: Если нет строгой необходимости получить файл именно с разделителями – запятыми, а нужен любой файл CSV, который Excel сможет понять, то этот шаг можно пропустить, так как Microsoft Excel отлично понимает файлы с разделителем – табуляцией.
В Блокноте результат будет приблизительно вот такой:
Как преобразовать файл Excel в CSV UTF-16
Экспортировать в файл CSV UTF-16 намного быстрее и проще, чем в UTF-8. Дело в том, что Excel автоматически применяет формат UTF-16 при сохранении файла как Текст Юникод (Unicode Text).
Для этого сохраняем файл при помощи инструмента Сохранить как (Save as) в Excel и затем в Проводнике Windows изменяем расширение созданного файла на .csv. Готово!
Если нужен файл CSV с запятой или точкой с запятой в качестве разделителя, замените все символы табуляции на запятые или точки с запятой соответственно в Блокноте или в любом другом текстовом редакторе на свой выбор (ранее в этой статье есть подробная инструкция, как это делается).
Другие способы преобразования файлов Excel в CSV
Описанные выше способы экспорта данных из Excel в CSV (UTF-8 и UTF-16) универсальны, т.е. подойдут для работы с любыми специальными символами и в любой версии Excel от 2003 до 2013.
Преобразуем файл Excel в CSV при помощи Таблиц Google
Как оказалось, можно очень просто преобразовать файл Excel в CSV при помощи Таблиц Google. При условии, что на Вашем компьютере уже установлен Google Drive, выполните следующие 5 простых шагов:
Совет: Если файл Excel относительно небольшой, то для экономии времени можно перенести из него данные в таблицу Google при помощи копирования / вставки.
В завершение откройте созданный CSV-файл в любом текстовом редакторе, чтобы убедиться, что все символы сохранены правильно. К сожалению, файлы CSV, созданные таким способом, не всегда правильно отображаются в Excel.
Сохраняем файл .xlsx как .xls и затем преобразуем в файл CSV
Для этого способа не требуется каких-либо дополнительных комментариев, так как из названия уже всё ясно.
Так или иначе, попробуйте сами такой способ создания файлов CSV из Excel, и если получится, то это будет хорошая экономия времени.
Сохраняем файл Excel как CSV при помощи OpenOffice
OpenOffice – это пакет приложений с открытым исходным кодом, включает в себя приложение для работы с таблицами, которое отлично справляется с задачей экспорта данных из формата Excel в CSV. На самом деле, это приложение предоставляет доступ к большему числу параметров при преобразовании таблиц в файлы CSV (кодировка, разделители и так далее), чем Excel и Google Sheets вместе взятые.
Просто открываем файл Excel в OpenOffice Calc, нажимаем Файл > Сохранить как (File > Save as) и выбираем тип файла Текст CSV (Text CSV).
Таким же образом для быстрого и безболезненного преобразования из Excel в CSV можно использовать ещё одно приложение – LibreOffice. Согласитесь, было бы здорово, если бы Microsoft Excel предоставил возможность так же настраивать параметры при создании файлов CSV.
В этой статье я рассказал об известных мне способах преобразования файлов Excel в CSV. Если Вам знакомы более эффективные методы экспорта из Excel в CSV, расскажите об этом в комментариях. Благодарю за внимание!
Как поменять кодировку в Excel
- Номер_файла – обязательный параметр, представляющий из себя номер, присвоенный файлу при открытии с помощью оператора Open.
- Данные – необязательный параметр, представляющий из себя одно или несколько числовых или строковых выражений, разделенных запятой, которые нужно записать в файл.
У неё есть несколько стандартов. Например, Koi-8, Unicode, Windows-1251, ASCII. И если файл с текстом сохранён, скажем, в Кои-8, в Excel он будет неправильно отображаться в Юникоде. Так как в этих наборах одним и тем же символам приписаны разные коды.
Публикуя свою персональную информацию в открытом доступе на нашем сайте вы, даете согласие на обработку персональных данных и самостоятельно несете ответственность за содержание высказываний, мнений и предоставляемых данных. Мы никак не используем, не продаем и не передаем ваши данные третьим лицам.