Я записываю файл через запятую, используя консольное приложение, а затем использую Process, чтобы открыть файл. Это быстрый и грязный способ выгрузки результатов запроса в Excel.
некоторое время это работало нормально, но в последнее время я начал получать " Файл, который вы пытаетесь открыть 'blah.csv', находится в другом формате, чем указано расширением файла ".
и чем после нажатия «Да»
Excel обнаружил, что blah.csv является файлом SYLK, но не может его загрузить. Либо файл содержит ошибки, либо это не файл формата SYLK. Нажмите кнопку ОК, чтобы попытаться открыть файл в другом формате.
Нажатие ОК открывает его и отображает правильно.
Я вижу некоторые решения для этого в веб-мире с добавлением заголовка размещения контента, но, поскольку я использую процесс для его открытия, я не могу применить это исправление.
мой код для открытия файла:
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filePath;
info.UseShellExecute = true;
Process.Start(info);
если я открою файл в Notepad ++ и покажу все символы, он будет отображаться как обычный CSV с окончанием строки CR LF.
после некоторого расследования похоже, что строка заголовков вызывает ошибку. Если я просто напишу пустую строку перед заголовками, ошибка исчезнет. заголовки выглядят так:
заголовок1, заголовок2, заголовок3 CRLF