为 Reporting Services 移动报表准备 Excel 数据

注意

SQL Server Reporting Services 2019 之后的所有 SQL Server Reporting Services 版本已弃用 SQL Server 移动报表发布服务器。 该功能从 SQL Server Reporting Services 2022 和 Power BI 报表服务器开始已停止使用。

以下是准备移动报表要使用的 Excel 文件和工作表时,需要注意的一些事项︰

应做事项

  • 每个数据集有一个工作表。
  • 第一行包含列标题。
  • 每一列的数据类型保持一致。
  • 将 Excel 中单元格的格式设置为合适类型。
  • 数据存放在工作表中,而不是在 Excel 的数据模型中。
  • 在使用公式时,请确保使用相同的公式计算整个列。
  • 使用 Excel 2007 或更高版本。
  • 用扩展名 XLSX 保存 Excel 文件。

禁止事项

  • 在数据集工作表中包含图像、图表、数据透视表或其他嵌入对象。
  • 包含总计或计算的行。
  • 导入时在文件已在 Excel 中打开。
  • 通过添加货币或其他符号手动设置数字格式。
  • 使用的工作簿包含在数据模型中存储的数据。

工作表

在为移动报表准备作为数据集的 Excel 文件时,请确保每个工作表只能有一个数据集。 每个单独的工作表作为一个独立的表导入到移动报表发布服务器。 导入后,将对具有相同名称的来自多个 Excel 源的工作表进行重命名,方法是在名称后追加递增的数字。 例如,如果工作簿有三个名为“MyWorksheet”的工作表。第二个和第三个工作表重命名为“MyWorksheet0”和“MyWorksheet1”。以下屏幕截图显示了可供导入的理想 Excel 工作表的前几行。

Screenshot of the first few rows of an ideal Excel worksheet ready for import.

列标题

如前面的示例所示,第一行包含该列中指标的名称。 移动报表发布服务器将保留这些列标题,以方便在库元素设置中引用。 但列标题并不是必需的。 如果缺少列标题,移动报表发布服务器将使用 A,B,C,...,AA,BB,... 约定生成标题。

通过比较每一列中前两个单元格的数据类型,在导入 Excel 工作表时移动报表发布服务器会自动检测第一行的标题。 如果任何列中前两个单元格的数据类型不匹配,则视为第一行包含列标题。 因此,如果表具有数值类型的列标题,请用字符串为标题名称加上前缀,以便在导入过程中将其检测为标题。

单元

工作表数据集每一列中的单元数据应保持一致。 导入后,会为每一列分配数据类型。 移动报表发布服务器自动将数据类型检测为字符串、双精度(数值)、布尔值 (true/false) 或日期时间。 同一列中出现混合数据类型可能会导致检测不准确或完全失败。 此检测说明列标题可能为字符串类型。 应在 Excel 中正确设置单元格的类型,以确保移动报表发布服务器可以检测出所需的类型。 在前面的示例中,检测出六列的类型为:

  • 日期时间列
  • 字符串列
  • 四个双精度列

如果某个工作表包含计算的单元格或公式,则仅将生成的显示值导入到移动报表发布服务器。

文件位置和刷新 Excel 数据

对于导入到移动报表发布服务器中的 Excel 文件,其存储位置不受限制。 但是,如果在导入后移动或重命名该文件,则无法通过“数据视图”中的“刷新所有数据”命令来刷新该数据。

注意

移动报表发布服务器不会自动刷新 Excel 数据。 可以通过移动报表发布服务器的“刷新”命令来刷新数据,但前提是文件没有移动。

日期

日期字段对于许多移动报表都至关重要,因此应在 Excel 中将单元格的格式正确设置为日期。 在某些情况下,需要转换。 下面是一些公式示例,用于在 Excel 中将单元格从文本转换为日期。

Week 24-2013=DATE(MID(A2,9,4),1,-2)-WEEKDAY(DATE(MID(A2,9,4),1,3))+MID(A2,6,2)*7

2013/03/21=DATEVALUE(A1)

2013-mar-12=DATEVALUE(RIGHT(A1,2)&"-"&MID(A1,6,3)&"-"&LEFT(A1,4))

转换单元格后,必须通过选择单元格或整列将其格式设置为日期。 然后,打开“上下文”菜单,选择“设置单元格格式”,然后从“类别”列表中选择“日期”。 还可以使用 Excel 文本分列向导将文本单元格转换为格式正确的日期。

不支持

如果工作表数据的格式不同于上述格式,则在导入时可能会导致不可预测的结果。 最好对 Excel 文件的工作表进行限制,即仅适用于移动报表正确格式的工作表。

Excel 工作表中的自定义对象(包括数据透视表、可视化功能以及图像)不能导入到移动报表发布服务器。