使用owc的spreadsheet导出Excel文件时,格式丢失的解决方法
2009-05-06 09:58
716 查看
在一次项目开发过程中,需要将查询结果导出成Excel文件。经过斟酌之后选择了使用Office的组建owc来进行开发。
由于导出文件的格式比较复杂,因此我首先制作Excel模板文件,并另存成xml格式。然后创建OWC11.SpreadsheetClass的对象,将数据导出。
导出过程中遇到一点麻烦,原来设定好的Excel格式在导出之后消失了。为了解决此问题,我采用了以下的办法,仅供参考!
1.在加载模板文件之后,将“WorksheetOptions”节点的内容暂存;
2.利用上面创建的oExcelSheet对象进行文件写入操作;
3.完成数据写入之后,文件生成之前,插入下列代码。
这样,原来经过导出时丢失的格式就会被重新写入,生成的Excel文件将保持原来的设计格式。
由于导出文件的格式比较复杂,因此我首先制作Excel模板文件,并另存成xml格式。然后创建OWC11.SpreadsheetClass的对象,将数据导出。
导出过程中遇到一点麻烦,原来设定好的Excel格式在导出之后消失了。为了解决此问题,我采用了以下的办法,仅供参考!
1.在加载模板文件之后,将“WorksheetOptions”节点的内容暂存;
Dim oExcelSheet As New OWC11.SpreadsheetClass Dim strOptionNodeInnerXml As String = String.Empty '暂存Option节点的xml数据 Dim xmlDoc As New XmlDocument xmlDoc.Load(Server.MapPath("~/App_Data/ABS19200.xml")) '装载模板文件 '***由于spreadsheet读取Excel Xml文件后,一些Excel格式Tag将不再支持,因为会被滤掉 '这样,输出的文件将丢失页面格式。为了避免此现象,暂存WorksheetOptions节点的Innerxml。 Dim xmlOptionNode As XmlNodeList = xmlDoc.GetElementsByTagName("WorksheetOptions") If xmlOptionNode IsNot Nothing Then strOptionNodeInnerXml = xmlOptionNode.Item(0).InnerXml End If strXml = xmlDoc.DocumentElement.OuterXml oExcelSheet.XMLData = strXml
2.利用上面创建的oExcelSheet对象进行文件写入操作;
3.完成数据写入之后,文件生成之前,插入下列代码。
'将spreadsheet输出的xml数据载入xmldocument,并且将前面暂存的格式数据复原 xmlDoc.LoadXml(oExcelSheet.XMLData) Dim OptionNode As XmlNodeList = xmlDoc.GetElementsByTagName("x:WorksheetOptions") OptionNode(0).InnerXml = strOptionNodeInnerXml
这样,原来经过导出时丢失的格式就会被重新写入,生成的Excel文件将保持原来的设计格式。
相关文章推荐
- jxl导出excel提示”文件错误 可能某些数字格式已丢失“解决办法
- PHP Excel类Spreadsheet_Excel_Writer 导出UTF8中文乱码的解决方法。
- 详讲:C#快速导出多个sheet到excel的两种方法(Cell和Range方法), 解决了(导入时外部表不是预期的格式)
- 导出excel解决“您尝试打开的文件格式与文件扩展名指定的格式不一致,打开文件前请验证文件没有损坏且来源可信”
- OWC9.0之Excel组件: Spreadsheet 客户端JS操控方法大全
- C#导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法
- 记事本里出现该文件含有Unicode格式的字符,当保存为ANSI编码的文本时,该字符将丢失,解决方法
- 导出CSV格式文件,用Excel打开乱码的解决办法
- POI导出Excel文件图片丢失问题解决
- 导出数据到CSV和EXCEL文件,过长的数值被转义的解决方法
- 使用POI3.8导出大数据excel方法(解决内存溢出)
- asp.net 导出excel 中的乱码问题及 到处内容丢失开头的0 的解决方法
- 使用POI读取XLSX文件,包含对EXCEL中自定义时间格式的处理--包含自己解决和修改jeeplus的源码的
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- rails导出excel插件 spreadsheet的标准使用
- C#导出数据到CSV和EXCEL文件时数字文本被转义的解决方法
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法
- 网页导出EXCEL格式数据,长数字变为科学计数法的解决方法
- Python使用xlrd读取Excel格式文件的方法
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法