将Crystal报表导出到Excel - 指定目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Crystal报表导出到Excel - 指定目录相关的知识,希望对你有一定的参考价值。
我有水晶报告(使用C#),我拉,并希望导出到Excel。我设法拉动并导出报告就好了。但是在代码中我手动指定了导出目录。
码:
myEquipCalRPT.ExportToDisk(ExportFormatType.Excel, "C:\Temp\ReportName.xls");
我知道路径必须是字符串值。如何询问用户他/她想要将报告导出到哪里(并为其命名)而不是手动指定代码中的路径?
我尝试使用下面的代码“SaveFileDialog”然后我得到这个例外:“附加信息:不支持给定路径的格式。”。这允许用户指定文件名,虽然我注意到文件名框下面的文件类型没有设置,并且没有类型可供选择。
SaveFileDialog browser = new SaveFileDialog();
string directoryPath = "";
ienter code here`f (browser.ShowDialog() == DialogResult.OK)
{
directoryPath = browser.ToString(); // prints path
}
myEquipCalRPT.ExportToDisk(ExportFormatType.Excel, directoryPath);
如果我使用“FolderBrowserDialog”,我会收到错误:“其他信息:拒绝访问路径'C: Directory'。”我怀疑是由于只提供了一个目录路径,但没有文件名。
FolderBrowserDialog browser = new FolderBrowserDialog();
string directoryPath = "";
if (browser.ShowDialog() == DialogResult.OK)
{
directoryPath = browser.SelectedPath; // prints path
}
myEquipCalRPT.ExportToDisk(ExportFormatType.Excel, directoryPath);
如果我尝试以下操作,我没有收到任何错误,但也没有保存文件:
FolderBrowserDialog browser = new FolderBrowserDialog();
string directoryPath = "";
string FileName = "ExcelExport.xls";
string Path = directoryPath + FileName;
if (browser.ShowDialog() == DialogResult.OK)
{
directoryPath = browser.SelectedPath; // prints path
}
myEquipCalRPT.ExportToDisk(ExportFormatType.Excel, Path);
另外,如何导出.xlsx而不是.xls?我可以将路径中的扩展名指定为.xlsx,但它不想打开。需要删除末尾的X才能使其正常工作。
答案
我最终使用此代码来获取路径正确,因为路径是通过“System.Windows.Forms.SaveFileDialog:Title:,FileName:C: Temp test.xls”而不是“C: Temp test”给出的.xls“包含所有对话框。
SaveFileDialog browser = new SaveFileDialog();
string directoryPath = "";
if (browser.ShowDialog() == DialogResult.OK)
{
directoryPath = browser.FileName.ToString();
}
您可以使用其中一行来编写文件,具体取决于您选择使用哪种方式导出报告:
myRPT.ExportToDisk(ExportFormatType.Excel, "C:\Temp\AMCMaintTempExcelReportFile.xls")
CrDiskFileDestinationOptions.DiskFileName = directoryPath;
myRPT.ExportToDisk(ExportFormatType.Excel, directoryPath);
以上是关于将Crystal报表导出到Excel - 指定目录的主要内容,如果未能解决你的问题,请参考以下文章