2015-06-01 7 views
-1

Я хочу открыть файл xlsx на C# .NET, но он показывает ошибку.Как открыть файл xlsx в C# .NET?

Но если файл является расширением xls, тогда я легко могу его открыть, но когда формат файла - xlsx, тогда отображается ошибка.

Мой код

oXL.Workbooks.Open(Path, 0, false, 5, "", "", false, 
       //Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0) 

Исключение:

Excel не может открыть файл 'Новый Microsoft Excel Worksheet.xlsx' , так как формат файла или расширение файла не является допустимым. Убедитесь, что файл не поврежден и что расширение файла соответствует формате файла.

+6

Можете ли вы указать «показывает ошибку» PLS? – Jens

+0

Я могу порекомендовать следующую библиотеку для XLSX: http://epplus.codeplex.com/ – ChrFin

+1

У вас есть проблема с выпуском Microsoft.Office.Interop. Проверьте, поддерживает ли ваша версия XLSX. Кроме того, Microsoft.Office.Interop требует установки MS Office ... какую версию MS Office вы используете? Вы можете открыть этот файл XLSX в Excel, где вы запускаете свою программу? – Amit

ответ

2

Workbooks.Open потерпит неудачу, если у вас есть версия Excel в вашей машине, которая не может читать xlsx файлы (например, Excel 2003).

Если вам не нужен действительно Office Interop (так что если вам просто нужно читать и писать файлы, а не использовать функциональные возможности Excel), то вы должны взглянуть на SDK Office Open XML (v2.5 для .Net 4.5 и v2.0 для .Net 3.5) в the official download site.

Вы тогда в состоянии, чтобы открыть Excel файл, как это:

SpreadsheetDocument ExcelDocument = SpreadsheetDocument.Open(FileName, false); 

и выполнять операции чтения и записи.

Должно быть ясным: Office Open XML SDK позволяет выполнять операции чтения и записи в файлах Excel (и других файлов Office XML), но если вам требуется, чтобы MS Excel выполняла вычисления или макросы, это не решит вашу вопрос.

+0

@ VojtěchDohnal SDK может делать то и другое. –

+0

Это не отвечает на вопрос ОП. Если файл поврежден, SDK не сможет открыть его либо –

+0

. OP сказал, что он может открывать файлы .xls, но не файлы .xlsx, поэтому из предоставленной им информации я предполагаю, что это проблема несовместимости версии с Версия MS Excel, которую он автоматизирует с помощью своего кода. – GeorgDangl

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