Подтвердить что ты не робот

Генерация/открытие CSV из консоли - файл находится в неправильной ошибке формата

Я пишу файл с разделителями-запятыми, используя консольное приложение, и использую Process для открытия файла. Это быстрый и грязный способ сбрасывания результатов запроса в excel.

какое-то время это работало нормально, но в последнее время я начал получать " Файл, который вы пытаетесь открыть" blah.csv ", находится в другом формате, чем указано расширением файла".

и после нажатия "Да"

Excel обнаружил, что blah.csv является файлом SYLK, но не может его загрузить. Либо файл имеет ошибки, либо не является файлом SYLK. Нажмите "ОК", чтобы попытаться открыть файл в другом формате.

Нажатие кнопки OK открывает его и отображается правильно.

Я вижу некоторые решения для этого в веб-мире с добавлением заголовка содержимого, но поскольку я использую процесс для его открытия, я не могу применить это исправление.

мой код, чтобы открыть файл:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filePath;
info.UseShellExecute = true;
Process.Start(info);

если я открою файл в Notepad ++ и покажу все символы, он просто показывает как обычный CSV с окончанием строки CR LF.

после некоторого исследования, похоже, что строка заголовков вызывает ошибку. Если я просто напишу пустую строку перед заголовками, ошибка исчезнет. заголовки выглядят так:

заголовок1, заголовок2, заголовок3 CRLF

4b9b3361

Ответ 1

Посмотрите здесь: http://support.microsoft.com/kb/323626

похоже, что идентификатор в качестве первых двух символов в строке заголовка - проблема - довольно странное поведение из Excel, на мой взгляд.

Ответ 2

CSV начинается с идентификатора двух символов. Если вы окружите символы двойными кавычками, он должен работать нормально.

Ответ 3

(Edited) У меня была аналогичная проблема - я получал ту же ошибку, но в моем случае это произошло внезапно после нескольких месяцев частого использования. Я задавался вопросом, действительно ли проблема в заголовке столбца "ID", решение Microsoft не объясняет, почему, как заявлял OP, "какое-то время это работало нормально", а затем стало проблемой.

Я обнаружил, что в моем сценарии были некоторые ошибочные данные, поступающие из восходящей системы, где запятая была добавлена ​​в имя кого-то, и это было недействительным. CSV файл. Это вызвало "неправильный формат файла", но отправил мне неправильный путь, когда "[filename] является файлом SYLK, но не может его загрузить"

надеюсь, что это может помочь кому-то еще в один прекрасный день.

Ответ 4

Неверный формат файла SYLK возникает, когда CSV файл имеет первые два символа в верхнем регистре я и D. Он может быть разрешен следующими шагами: Откройте файл в Блокноте и нажмите клавишу apostrophe() до 1-го символа. Сохраните файл и снова запустите MS Excel.