Bonjour,

Dans une application en Silverligh, j'essaye d’ouvrir, dans Excel, des fichiers de différents types .

La lecture ce fait coté Serveur.

La programmation est en c#.

Mon code est le suivant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
        object format = Type.Missing;           //  Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenDocumentSpreadsheet.
                    xlWorkBook = xlApp.Workbooks.Open(
                        ExcelFileName,                                                //Filename
                        0,                                                            // UpdateLinks : Optional Object. Specifies the way links in the file are updated. If this argument is omitted, the user is prompted to specify how links will be updated. Otherwise, this argument is one of the values listed in the following table. If Microsoft Excel is opening a file in the WKS, WK1, or WK3 format and the UpdateLinks argument is 2, Microsoft Excel generates charts from the graphs attached to the file. If the argument is 0, no charts are created.
                        true,                                                         // ReadOnly
                        format,                                                       // ReadOnly    : Optional Object. If Microsoft Excel is opening a text file, this argument specifies the delimiter character, as shown in the following table. If this argument is omitted, the current delimiter is used.
                        Password,                                                     // Password
                        "",                                                           // WriteResPassword
                        true,                                                         // IgnoreReadOnlyRecommended : Optional Object. True to have Microsoft Excel not display the read-only recommended message (if the workbook was saved with the Read-Only Recommended option).
                        Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,          // Origin      : Optional Object. If the file is a text file, this argument indicates where it originated (so that code pages and Carriage Return/Line Feed (CR/LF) can be mapped correctly). Can be one of the following XlPlatform constants: xlMacintosh, xlWindows, or xlMSDOS. If this argument is omitted, the current operating system is used.
                        "\t",                                                         // Delimiter   : Optional Object. If the file is a text file and the Format argument is 6, this argument is a string that specifies the character to be used as the delimiter. For example, use Chr(9) for tabs, use "," for commas, use ";" for semicolons, or use a custom character. Only the first character of the string is used.
                        false,                                                        // Editable    : Optional Object. If the file is a text file and the Format argument is 6, this argument is a string that specifies the character to be used as the delimiter. For example, use Chr(9) for tabs, use "," for commas, use ";" for semicolons, or use a custom character. Only the first character of the string is used.
                        false,                                                        // Notify      : Optional Object. If the file cannot be opened in read/write mode, this argument is True to add the file to the file notification list. Microsoft Excel will open the file as read-only, poll the file notification list, and then notify the user when the file becomes available. If this argument is False or omitted, no notification is requested, and any attempts to open an unavailable file will fail.
                        0,                                                            // Converter   : Optional Object. The index of the first file converter to try when opening the file. The specified file converter is tried first; if this converter doesn’t recognize the file, all other converters are tried. The converter index consists of the row numbers of the converters returned by the FileConverters property.
                        false,                                                        // AddToMru    : Optional Object. True to add this workbook to the list of recently used files. The default value is False.
                        1,                                                            // Local       : Optional Object. True saves files against the language of Microsoft Excel (including control panel settings). False (default) saves files against the language of Visual Basic for Applications (VBA) (which is typically U.S. English unless the VBA project where Workbooks.Open is run from is an old internationalized XL5/95 VBA project).
                        Microsoft.Office.Interop.Excel.XlCorruptLoad.xlExtractData);  // CorruptLoad : Optional Object. Can be one of the following constants: xlNormalLoad, xlRepairFile, and xlExtractData. The default behavior if no value is specified is usually normal, but may be safe load or data recovery if Excel has already attempted to open the file. The first attempt is normal. If Excel stops operating while opening the file, the second attempt is safe load. If Excel again stops operating, the next attempt is data recovery.
J'ouvre correctement des fichier xls, xlsx, xlsb, xlm (créer par excel).

Par contre je n'arrive pas à ouvrir les fichier ods.

J’obtiens l’erreur "Exception de HRESULT : 0x800A03EC".

J'ai essayer de changer le format (Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenDocumentSpreadsheet.),
le corruptload (xlExtractData, xlRepair) mais rien n'y fait.

J'ai soit l'erreur 0x800A03EC, soit une erreur indiquant que le fichier est corrompue.

Je vous remercie d'avance.