TAdvStringGrid带格式导出问题
最近开发一个软件,使用了TAdvStringGrid控件,遇到一个数据导出问题:
TAdvStringGrid控件自带有很多导出方式:
advstrngrd1.SaveToDOC(dlgSave1.FileName);
advstrngrd1.SaveToXLS(dlgSave1.FileName);
advstrngrd1.SaveToCSV(dlgSave1.FileName);
等等!
最希望的是带格式导出EXCEL格式,因为我的表中有本底颜色、字体颜色等格式,但遇到以下问题:
1、如果想SaveToDOC、SaveToXLS,有一个先决条件就是用户必须安装Office,而且安装的版本要合适(否则极易出错!),这对用户要求有点过高、过分。
2、SaveToCSV就没有以上要求,可以直接导出,速度也很快,但有一个致命的缺点,就是不能带格式,因为它完全是个文本格式导出,不可能带格式。
3、我最终采纳的是用SaveToHTML导出,从根本上解决了以上两个问题,天生自带格式,最关键的是:导出的东东可用极多的常用软件打开,如:任何浏览器、几乎所有版本的Office、国产顶级办公软件WPS(任何版本),方便至极!目前版本的Office和WPS系统虽然后缀名各有不同,但其保存文件的核心都是XML格式。系统在打开文件时都很有智能,会自动根据文件格式调整至合适的展现方式!
对于生成的文件虽然默认是html,但你可以直接修改成任何其它的扩展名,比如XLS、XLSX、DOC、DOCX等等,都可直接用Office或WPS打开带格式的导出文件。
当然由于HTML格式限制,我所说的格式并不包括可控制的列宽、列高!除非你手动调整HTML文件!
但解决我的问题,已经足够了!
总之,我在此只是提出了一种解决此类问题的思路和做法,供同行参考!