能否将Spread内容保存为xls类型并且打开不提示警告
使用Spread的SaveExcel方法,saveFlags如果指定为UseOOXML,文件保存为.xls文件后,打开文件会提示内容和后缀不一致的警告。如果把UseOOXML参数去掉,貌似默认存储格式就是OOXML,打开.xls文件还是会提示内容和后缀不一致的警告。
是否有一个Flag可以让文件格式使用Excel97-2003格式进行存储,这样打开文件的时候就不会提示错误了。谢谢
直接调用SaveExcel ,就是保存03格式的,给个能重现问题的Demo dexteryao 发表于 2019-12-6 12:16
直接调用SaveExcel ,就是保存03格式的,给个能重现问题的Demo
谢谢。已经按照03格式生成Excel了,但是有个问题,生成的Excel如果用SpecialCells(xlCellTypeLastCell)取最后有效列的时候,直接返回了最大列256,无法根据实际使用区域返回最大列。旧版本Activex的不存在这个问题。请问这是产品升级的变更点吗? 这个要具体问题具体分析了,和您对模版的操作方式有关,对样式的操作整行的操作也肯能影响最后编辑区域。 dexteryao 发表于 2019-12-6 16:05
这个要具体问题具体分析了,和您对模版的操作方式有关,对样式的操作整行的操作也肯能影响最后编辑区域。
没有任何模板,就是单纯一个Spread绑定一个DataTable然后SaveExcel,也没有对格式进行任何形式的操作 您现在用的那个版本,DataTable有多少列? 最好能给我个直接重现问题的Demo,我这个重现,看有没有方案。 dexteryao 发表于 2019-12-6 17:23
您现在用的那个版本,DataTable有多少列? 最好能给我个直接重现问题的Demo,我这个重现,看有没有方案。
工程代码已经上传。您可以在VBA中使用SpecialCells(xlCellTypeLastCell).Column获取最后一列,或者打开后直接按Ctrl+End,它都会指向最后一列256。谢谢
karaiwasabi 发表于 2019-12-6 16:24
没有任何模板,就是单纯一个Spread绑定一个DataTable然后SaveExcel,也没有对格式进行任何形式的操作
另外还请教一个问题,在使用SaveExcel保存Excel的时候,列宽不会根据列内容自动适应,有什么方法能让SaveExcel保存的Excel文件列宽自动适应?就像双击Excel列边框的效果?谢谢 保存时候没有这样的选项,您需要在保存前先调整好列宽,用fpSpread1.ActiveSheet.GetPreferredColumnWidth方法可以获取到最适应的列宽 dexteryao 发表于 2019-12-9 16:34
保存时候没有这样的选项,您需要在保存前先调整好列宽,用fpSpread1.ActiveSheet.GetPreferredColumnWidth ...
我使用下面的代码,想实现列宽度以包含列头在内所有单元格最宽的尺寸设定,但是效果没有出来,还是以单元格数据的最大尺寸设定的。请问应该怎样去改?谢谢
fpspread.ActiveSheet.Columns(i).Width = fpspread.ActiveSheet.GetPreferredColumnWidth(i, False)
页:
[1]
2