ReportX技巧(8)输入输出EXCEL

ReportX Excel导入导出详解
本文介绍ReportX中三种Excel文件操作方法:ExportExcel、ExportExcelOle及ImportExcelOle。详细解释了每种方法的参数及其使用场景,包括二进制导出、OLE方式导出和导入。

    ReportX关于出EXCEL的函数共有三个ExportExcel以二进制方式出、ExportExcelOle以Ole方式出、ImportExcelOle以Ole方式入,下面具体讲一下三个函数的用法。

ExportExcel  (二进制方式输出)
ExportExcel (BSTR aFileName, BSTR aSheetName, VARIANT_BOOL aDisplayValue)
aFileName:导出文件的路径和名称;
aSheetName:导出Excel的表页名,因为ReportX只有一个表页,导出的Excel也只有一个表页;
aDisplayValue:aDisplayValue=True表示导出的是ReportX单元格的显示值,即所见即所得,但这种方式不导出单元格格式;aDisplayValue=False导出的是ReportX单元格的真实值。比如:单元格的FormatType=1(数字),FormatText="0.00",在这个单元格内写入10.001,如果aDisplayValue=True则导出10.00,单元格格式是“常规”;aDisplayValue=False则导出10.001,单元格格式是“数字”“0.00”,在Excel的界面上还会是10.00。
这种方式是按Excel的格式以二进制方式写入,速度非常快。
 
ExportExcelOle
ExportExcelOle (BSTR aFileName, long aCol1, long aRow1, long Col2, long Row2, BSTR aSheetName, VARIANT_BOOL aOleText)
aFileName:导出文件的路径和名称;
aCol1:起始区域列号;
aRow1:起始区域行号;
aCol2:终止区域列号;
aRow2:终止区域行号;
aSheetName:导出Excel的表页名,因为ReportX只有一个表页,导出的Excel也只有一个表页;
aOleText:aOleText=True表示只导出文本,不导出格式;aOleText=False会把所有Excel支持的格式全部导出。
这种方式是按Ole方式导出数据,aOleText=True的速度还可以,aOleText=False速度慢,但格式非常准确。
 
ImportExcelOle
void ImportExcelOle(BSTR aFileName, long aCol1, long aRow1, long aCol2, long aRow2, VARIANT_BOOL aOleText)
aFileName:导入文件的路径和名称;
aCol1:起始列号
aRow1:起始行号
aCol2:终止列号
aRow2:终止行号
aOleText:aOleText=True表示只导入文本,不导入格式;aOleText=False会把所有ReportX支持的格式全部导入。
这种方式是按Ole方式导入数据,aOleText=True的速度还可以,aOleText=False速度慢,但格式非常准确。
ReportX2.3.1.0下载地址: http://download.youkuaiyun.com/source/275430  (需要登录 www.youkuaiyun.com )或 http://www.skycn.com/soft/22608.html
一个免费的表格控件,相当强大 reportX支持预览和打印、支持公式、支持表格模版、支持导出excel、支持单元格锁定及格式、支持图表和条码等,不支持数据源、单元格边框单独改色,至2.6版本时仍有些BUG如:OnCellChanging事件无效,只能用API getfocus()取当前输入框句柄然后取该控件的标题即是正在输入的内容。 发布只要regsvr32注册ReportX.ocx即可。 1、常用属性及方法: setcellvalue()置单元格文本、getcellvalue()取单元格文本、Explain...()计算刷新单元格公式、OpenReport()载入表格模版、Colcount和Rowcount属性设置或取得表格行列数、 GetSelectCell方法的参数应使用变量而不是变量值以便该方法将选择范围返回给变量、TopRow属性为当前表格可见行首行号、Sortcol()对指定列进行排序、sortrow()对指定行排序、PageHeader...Text和PageFooter...Text属性设置页眉页脚其中@number表示当前面@Count表示总页数、 GetCellHAlignment取横向对齐方式GetCellVAlignment纵向SetCellHAlignment设置0左1中2右、ExplainCellExpression计算单元格公式(单元格公式不会自动计算,只能在程序中调用执行)、ExportExcel导出到excel。 2、BottomHeight和RightWidth设为0则reportX没有滚动条,PoleHeight和PoleWidth设为0则表格没有固定标题行列。 3、reportx单元格首列和首行号均为1 4、setpoletext()和getpoletext 参数一为标杆方向横向为0,纵向为1,参数二位置从1开始(即最左上角标杆格无法设置任何数据) 5、MergeCell()合并单元格必须用合并后的最前的行列进行读写,或用SplitCell拆分单元格。 6、VB对其setfocus()无效(易语言支持setfocus),可使用控件本身的SetSelectCell方法代替。 7、AppendRow和AppendCol方法增加指定的行数或列数,DeleteCol删除指定列数。 8reportx.SetColWidth col, reportx.GetColBestWidth(col) + 9 '填充完数据后,用此语句设置最佳列宽。 9、copycell和paste方法可以复制,粘贴区域,包含格式(但不含分页符),可以粘贴到另一个Rpt对象中。 10、大量写表格数据时,设置InvalidatePaint()使表格刷新无效,写好数据后使用ValidatePaint()使报表刷新有效并刷新,这样可以加快写的速度。如果这样还是太慢或内存不足,则只能用分页分册的方式了。 速度上比VsFlex的还是要差很多,但支持图表,支持打印,支持套打模版等等,更主要的是免费,支持原作者!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值