sspyrs的替代版本,它是SSRS向python报告的轻量级接口。

sspyrs2的Python项目详细描述


变更日志

1.0.2版 -将<;as_response>;参数添加到下载方法。 - 自述文件.rst更新。在

不锈钢2

  1. 下载带有参数的报告(改进更正)
  2. 下载PDF报告。在

其他的事情都是一样的。在

SSPYRS2(sqlserverpythonreportingservices)库是一个轻量级接口,用于与SSRS报表交互并从SSRS报表中检索数据。这个库的核心功能很简单。对SSRS服务器执行身份验证,初始化会话,然后从该会话检索报表数据。报表数据可以通过原始XML进行交互,但有预定义的方法将其组织到Pandas DataFrame对象中。在

SSPYRS2库主要使用SSRS的XML导出功能。但是,SQL Server的免费express版本中没有提供XML或CSV导出(它们在SQL Server 2017的当前免费开发人员版本中提供)。该库包含了express版本中包含的Excel导出的直接下载功能,但是它不会将数据直接读入内存。在

SSPYRS2已经过验证,可以在大多数服务器设置下与SSRS 2008 R2、SSRS 2014和SSRS 2016、SSRS 2017和PowerBI Server 2017一起使用。在

要安装SSPYRS2,请在控制台中执行:

pip install sspyrs2

使用和文档

报告对象

报表对象可以按如下方式初始化:

^{pr2}$

如果将参数传递给报表,则可以将它们作为名为“parameters”的参数作为字典传递。注意,参数必须使用rdl文件中指定的实际参数名。除非需要,否则不需要指定具有默认值的参数。在

检索数据

原始XML数据

要从报表中检索原始XML,请使用rawdata()方法:

rpt_xml = myrpt.rawdata()

结果变量将是一个包含所有报表数据元素的字典。除了来自报表的XML格式的数据元素之外,这将包括一些报表元数据。请注意,一些XML标记和标题可能与它们对应的报表属性不同。这是因为XML不包含任何XML对象标签,只包含它们的名称,这些标签在整个.rdl文件中必须是唯一的,而不仅仅是在一个元素中。例如,在包含两个表(它们之间共享列名)的报表中,第一个表或数据对象的常规列名将附加一个“@”(例如“@ID”、“@Val”),而第二个表的列名将类似“@ID2”、“@Val2”。tabledata()方法去掉“@”和数字,但是rawdata()方法将它们保留下来。在

表格数据

要将原始XML快速组织为表格格式,请使用tabledata()方法:

rpt_tables = myrpt.tabledata()

结果变量将是Pandas数据帧的字典,字典中的键对应于.rdl文件中的数据对象名称。此方法还尝试对number和date列进行一些有限的数据分析。在

导出数据

默认下载

使用允许XML导出的版本时,可以使用download()方法将报表数据直接导出为几种方便的格式:

rpt_downresults = myrpt.download(type='CSV')

结果变量列出了下载并写入文件的数据对象。当前可用的导出包括CSV、JSON和Excel。默认下载文件类型为CSV。对于CSV和JSON,将为每个数据对象创建一个文件,根据tabledata()结果中的字典键命名。对于Excel,将创建具有多个选项卡的单个文件。在

直接下载

当使用不允许XML数据导出的SSR版本时(通常因为express Edition中不包含该功能),可以使用directdown()方法将数据直接导出到任何可用的导出类型(在速成版上,通常包括Excel、Word和PDF)。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
来自偏移量的java JavaPairInputStream流   gzip Java TarInputStream读取tar的文件名。包含另一个tar的gz文件。gz文件   如何在Linux shell脚本中确定和使用实际的java路径   java请求太多FirebaseError   java错误json解析   java在localserver上发送安卓应用程序的输出   JavaSpring:启动和停止webapplication时更新DBtable条目   java如何使用JavaFX在矩形处设置文本?   java SQL查询在Hibernate中出现异常   java我无法使用javamail代码通过outlook(hotmail帐户)配置发送邮件,但在gmail中工作正常   java是不同的持久性。测试运行/JPA装置的xml属性   无头Eclipse的java导出战   使用ContentVersionStrategy的java Spring引导缓存禁止使用gzip进行资源压缩   java如何获取计算机的设备令牌?   图像文件的java ImageInfo不包含有效值   继承强制在Java中使用基类方法