axlsx报表工具(一)——安装及入门

本文介绍了axlsx报表工具的安装步骤以及如何创建第一个报表,是初学者的入门指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

      axlsx是一个基于ruby的Office Open XML Spreadsheet报表生成工具,下图是它生成的一个报表截图(图片来源: https://raw.github.com/randym/axlsx/master/examples/sample.png)。

        安装axlsx和安装其他gem一样:
$ gem install axlsx

创建第一个报表

       axlsx使用的对象和office文档使用的对象完全一样,workbook代表一个文档,worksheet代表一张表,row和cell代表行和单元格,基本上所有的对象顾名思义即可,而不需要了解文档ECMA规范。
      比如要创建一张如图所示的报表:

require 'axlsx'

p = Axlsx::Package.new
wb = p.workbook

wb.add_worksheet(:name => "Basic Worksheet") do |sheet|
  sheet.add_row ["First Column", "Second", "Third","Total"]
  sheet.add_row [1, 2, 3,"=SUM(A2:C2)"]
  sheet.add_row ['This is a very very long sentence.']
  sheet.merge_cells "A3:D3"
end

p.serialize 'basic.xlsx'

    代码非常简单明了,创建worksheet,再一行行添加数据,在添加第二行数据时甚至使用了一个求和函数,所以我们使用过的Excel的知识完全可以直接拿过来使用,甚至对于较长的内容可以合并单元格,但这里没有居中显示所以还不够美观,美观的事情可以格式化来解决,不过这是下一篇的内容了。
    最后一行是将报表序列化到xlsx格式的文件,该文件可以用MSOffice直接打开查看。
个免费的表格控件,相当强大 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删除指定列数。 8、reportx.SetColWidth col, reportx.GetColBestWidth(col) + 9 '填充完数据后,用此语句设置最佳列宽。 9、copycell和paste方法可以复制,粘贴区域,包含格式(但不含分页符),可以粘贴到另个Rpt对象中。 10、大量写表格数据时,设置InvalidatePaint()使表格刷新无效,写好数据后使用ValidatePaint()使报表刷新有效并刷新,这样可以加快写的速度。如果这样还是太慢或内存不足,则只能用分页分册的方式了。 速度上比VsFlex的还是要差很多,但支持图表,支持打印,支持套打模版等等,更主要的是免费,支持原作者!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值