我们需要一个Java代码,该代码自动将csv文件转换为pbix文件,以便可以在PowerBI Desktop中将其打开并进一步处理。现在,我知道PowerBI提供了此超酷功能,该功能可将csv文件和许多其他格式手动转换为pbix。但是,我们需要一个自动将我们的报告直接转换为pbix的功能,因此不需要创建任何中间文件并将其存储在某个位置。
我们已经能够开发具有三个参数的函数:第一个参数对应于从数据库中选择的报告;第二个对应于目录,应在其中生成转换后的报告;最后,第三个是转换后的输出文件本身。前两个参数运行良好,并且代码能够生成我们选择的任何报告到所选目录的副本。但是,它只能生成csv文件。任何其他格式的大小都将与csv相同,并且无法打开。
这是到目前为止我们为代码的转换部分所做的尝试:
Util.writeFile("C:\\" + "test.csv", byteString);
上面的代码可以正常工作,但是csv并不是我们想要的,原始报告仍然已经是csv格式。
Util.writeFile("C:\\" + "test.pbix", byteString);
Util.writeFile("C:\\" + "test.pdf", byteString);
Util.writeFile("C:\\" + "test.xlsx", byteString);
上面三行中的每行都以指定的格式生成一个文件,但是每个生成的文件都与其对应的csv一样大(但应该更大),因此无法打开。
File file = new File("C:\\" + "test1.csv");
File file2 = new File("C:\\" + "test1.pbix");
file.renameTo(file2);
上面的代码根本不会生成任何文件,但是我认为值得一提,因为它也不会抛出任何异常。
P.S。我们还将对Java代码感兴趣,该Java代码可在PowerBI之外的任何其他BI报告软件中转换csv,例如Tableau,BIRT,Knowage等。
P.S.2第一部分代码使用了一个类的对象(sailpoint.tools.Util),该类显然仅对那些可以访问Sailpoint的用户可用。