2013-06-03 6 views
2

Я использую visual studio 2008 для создания консольного приложения на C#.Перезаписать файл excel с кодом

Приложение «читает» файл Excel 97-2003 (.XLS).

Я использую самолет, чтобы прочитать файл:

OleDbConnection oConn = new OleDbConnection(); 
    oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + file_path + " ;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\";";  

Но при запуске программы я получаю сообщение об ошибке «Внешняя таблица не в ожидаемом формате.»

Я попытался чтения файла Excel с библиотекой NPOI и я получил ошибку:

сообщение = «Недопустимая подпись заголовка, читайте 0x0010000000060809, как ожидается 0xE11AB1A1E011CFD0»

Итак, это как файл недопустим в в некотором роде.

Если через Windows я открываю файл Excel в Office Excel, а затем сохраняю его с тем же самым расширением .xls, перезаписывая его, а после этого запускаю консольное приложение, тогда приложение работает нормально, без ошибок.

Итак, что бы я хотел сделать: с кодом C#, откройте файл и сохраните его и перезапишите, чтобы приложение могло успешно прочитать файл.

Я предполагаю, что я мог бы открыть файл так:

File.OpenWrite(file_path); 

Но как я мог перезаписать файл?

+0

Где вы получаете исходный файл из? Возможно ли, что это действительно не действительный файл Excel «xls», а другой формат файла с расширением «xls»? –

+0

Файл excel создается другой программой, поэтому он генерируется как файл excel. – pyram

+0

Не настаивать на этом, но вы уверены? Многие веб-приложения (например) будут генерировать файлы «xls», которые являются не более чем таблицей HTML, если вы посмотрите на контент. Excel открывает их отлично, но другие приложения могут захлебываться в этом формате. –

ответ

1

Вам не нужно открывать и переписывать его, насколько я могу судить. Строка подключения неверна. Вы нигде не говорите, что это файл Excel, поэтому по умолчанию он ищет базу данных Access (и не находит ее).

Попробуйте вместо этого:

Provider=Microsoft.Jet.OLEDB.4.0; data source="YourFileName.xls"; Extended Properties=Excel 8.0; 

Для других типов соединений см ConnectionStrings

+0

Да, я говорю, это файл excel. Я только что редактировал мой вопрос. Но я получаю ту же ошибку. Как вы можете видеть, я также попытался открыть файл excel с другой библиотекой, библиотекой NPOI, но он снова не удался. – pyram

Смежные вопросы