用的SpreadsheetGear创建开幕XLSX文件(Opening xlsx file crea

2019-10-21 04:33发布

我一直在使用的SpreadsheetGear创建了一个简单的Excel文件。 如果我将其保存为xls文件

workbook.SaveAs("file.xls", SpreadsheetGear.FileFormat.Excel8);

它附加到电子邮件,我可以打开我的手机上(测试都与iPhone和Android)。

如果我将其保存为xlsx档案

workbook.SaveAs("file.xlsx", SpreadsheetGear.FileFormat.OpenXMLWorkbook);

它附加到电子邮件,我无法打开它在我的手机上。

如果我打开我的电脑上XLSX文件附件并没有更改保存它,它附加到电子邮件,我现在可以在手机上打开它。

显然Excel中比SSG不同的保存文件。 的XLSX文件附件的文件大小是9 KB。 当我打开我的电脑上,并保存它,新的文件大小为24 KB。

我的一些用户喜欢的XLSX格式。 请问有什么可以让SSG生成的文件附件像Excel中打开生成的文件attachement吗?

Answer 1:

iOS的依赖于某些属性存在于开放的XML文件格式的工作表数据正确地分析这些文件。 因为它们在打开XML文件格式规范列为可选的SpreadsheetGear不写这些属性出来,也忽略他们减小文件大小,因为你已经注意到。 Excel中,不管出于什么原因,总是写出这些可选属性和其他第三方组件很多时候依赖他们的存在才能正常工作。 的SpreadsheetGear V5加入一种解决方法通过使一定的“实验”选项来写出这些属性。 加入这个选项,因为OLE DB提供程序也具有这种错误行为。 您可以尝试像下面这样,看看这有助于获得的SpreadsheetGear与你的观众更好的工作:

IWorkbookSet workbookSet = Factory.GetWorkbookSet();
workbookSet.Experimental = "OleDbOpenXmlWorkaround";
IWorkbook workbook = workbookSet.Workbooks.Open(@"C:\temp\BadWorkbook.xlsx");
workbook.SaveAs(@"C:\temp\GoodWorkbook.xlsx", FileFormat.OpenXMLWorkbook);

请参阅SpreadsheetGear.IWorkbookSet。 实验属性此功能的更多信息。

从我可以告诉,的iOS /安卓/等往往还取决于在的SpreadsheetGear要么不支持或默认写出来的文件格式提供其他某些可选功能。 例如,iOS版取决于存储图表中显示图表系列数据点的SpreadsheetGear对写出这个数据缓存有限的支持“数据高速缓存”。 这可能会导致不显示图表如预期中的iOS,Android等



文章来源: Opening xlsx file created with SpreadSheetGear