Как преобразовать csv в xlsx

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Скачиваю exel файл в формате csv. Можно было бы работать с файлом и в таком формате, если бы разделитель столбцов не был бы в нём ",". И в итоге когда я открываю этот файл в ZennoPoster информация разлазится так как значения в ячейках тоже имеют запятые. Приходится этот файл вручную конвертировать в xlsx. И уже потом работать с ним.
Можно ли этот файл усилиями Зенки, конвертировать в xlsx?
Файл тоже очень большой, порядком 800 000 строк. Вот он

На форуме есть информация как конвертировать из xlsx в csv, но нет информации как конвертацию сделать обратную(или я не нашел).
Спасибо заранее за помощь!!!
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Подключил несколько строк ваших данных в csv-виде, вроде все хорошо - корректно столбцы распределяются.
С xlsx форматом могут возникнуть проблемы когда кол-во строк перевалит за 1 млн, а точнее: 1 048 576 строк.

92859
 
  • Спасибо
Реакции: kolina

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Я понимаю что это другая история, но как тогда ещё привести текст к нормальному виду(у Вас кирилица норм отображается, а у меня каракули)? Установка галки на против Коректного отображения не помогает.
csv.png
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Я понимаю что это другая история, но как тогда ещё привести текст к нормальному виду(у Вас кирилица норм отображается, а у меня каракули)? Установка галки на против Коректного отображения не помогает.
Посмотреть вложение 92896
Все верно, т.к. .csv файл перед использованием в Зеннопостере необходимо сконвертирвоать в UTF-8.
 
  • Спасибо
Реакции: kolina

kolina

Client
Регистрация
05.10.2019
Сообщения
158
Благодарностей
44
Баллы
28
Силами ZennoPoster, это сделать можно?
Не силён в с# но на просторах интернета нашел такой код: Поможет?
C#:
// создаем объекты кодировок
var inAsciiEncoding = System.Text.Encoding.GetEncoding("windows-1251");
var outUTF8Encoding = System.Text.Encoding.UTF8;
// читаем оригинальный файл по байтам
var inAsciiBytes = System.IO.File.ReadAllBytes(project.Variables["pathToWin1251File"].Value);
// конвертируем байты в нужную кодировку
var outUTF8Bytes = System.Text.Encoding.Convert(inAsciiEncoding, outUTF8Encoding, inAsciiBytes);
// Записываем переконвертированные байты в файл
using (var stream = new System.IO.FileStream(project.Variables["pathToUTF8File"].Value, System.IO.FileMode.Create))
{
    using (var writer = new System.IO.BinaryWriter(stream, outUTF8Encoding))
    {
        writer.Write(outUTF8Encoding.GetPreamble());
        writer.Write(outUTF8Bytes);
    }
}
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 469
Благодарностей
8 691
Баллы
113
Силами ZennoPoster, это сделать можно?
Не силён в с# но на просторах интернета нашел такой код: Поможет?
По идее должен.
Попробуйте. Но файл конечно оч. серьезный по размеру, нужно проверять на деле.
 
  • Спасибо
Реакции: kolina

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)