Hi,
I am getting this error very often when try to open an excel file:
This file's format is not supported or you don't specify a correct format.
My code:
System.IO.FileStream fstream = null;
Workbook workbook = new Workbook();
fstream = new System.IO.FileStream(docFile, FileMode.Open);
workbook.Open(fstream, fileFormat);
I have tried to use fileFormat = Excel97, XP, 2000, 2003, none of them work. However, I can open it with Excel 2003
I have attached one excel file for you to take a look.
Thanks
Chang
Please try FileFormatType.TabDelimited option.
yes, it works. Why I can't open it with any other formats?
Or my question is how do I know to use which right format to open the files?
Hi,
Well, the file is basically a text file, if you could open the file into notepad, you may see it's a text file. For text files, you may use FileFormatType.TabDelimited format type.
For other formats, you should choose a valid FileFormatType, e.g..,
xls/xlt -> Excel97/Excel2000/ExcelXP/Excel2003/Default etc.
csv -> CSV
xlsx -> Excel2007Xlsx
txt(tab delimited) -> TabDelimited
.xml (Spreadml) -> SpreadsheetML
For your further reference, kindly check the following doc links:
http://www.aspose.com/documentation/file-format-components/aspose.cells-for-.net-and-java/opening-files.html
http://www.aspose.com/documentation/file-format-components/aspose.cells-for-.net-and-java/saving-files.html
Thank you.
hi,
thanks for info. I am doing a batch process, all the files are saved as xls, I can not tell the format when openning. If I open them with excel, I don't need to specify exactly format to use, I think aspose.cells should be able to handle it the same way?
Hi,
I think you may use your own code to manually check the file's extension of the file with ease which you are opening using Workbook.Open() method.
e.g..,
.
.
.
string path = myFilePath;
string ext = path.Substring(path.LastIndexOf(".")+1, path.Length);
switch(ext)
{
case ".xls":
workbook.Open(myfilePath,FileFormatType.Default);
break;
case ".xlsx":
workbook.Open(myfilePath,FileFormatType.Excel2007Xlsx);
break;
case ".xml":
workbook.Open(myfilePath,FileFormatType.SpreadsheetML);
break;
case ".txt":
workbook.Open(myfilePath,FileFormatType.TabDelimited);
break;
case ".csv":
workbook.Open(myfilePath,FileFormatType.CSV);
break;
}
Thank you.
hi,
Aggree..if I can tell from file extension. The problem is we got files from clients, all of which have extension of 'xls' -- and there is not such a problem to open these files with excel interop, without knowing what internal file format is.
Hi,
Well, I 'm afraid we do not have any good solution for it, we can only know whether it is a txt file or other file from its content. We cannot simply get which separator the file uses.
Thank you.