У меня есть отчеты Crystal Reports (с использованием 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 в конце, чтобы он заработал.