C#表格导出并选择路径

291 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

C#实现桌面应用的时间 表格的数据和导出是一个十分常用的需求

代码如下:

           SaveFileDialog fileDialog = new SaveFileDialog();
            fileDialog.Title = "导出Excel";
           /* fileDialog.InitialDirectory = "D:\\";//默认保存路径为D盘*/
            fileDialog.InitialDirectory = Functions.GetDialogPath();
            string dateTime = DateTime.Now.ToString("yyyyMMddhhmmss");
            fileDialog.FileName = dateTime + "xx报表";//保存的Excel文件名称
            fileDialog.Filter = "Excel文件(*.xls)|*.xls";
            DialogResult dialogResult = fileDialog.ShowDialog(this);
            if (dialogResult == DialogResult.OK)
            {
                gcReportDetail.ExportToXls(fileDialog.FileName);
                DevExpress.XtraEditors.XtraMessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            
             public static string GetDialogPath()
        {
            string dirPath = "";
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.ShowNewFolderButton = true;
            dialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //默认路径为用户桌面目录
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                dirPath = dialog.SelectedPath + @"\";
            }
            return dirPath;
        }
            

首先先创建一个文件弹出框对象

然后设置弹出框的标题 和设置弹出框的初始化目录 这个目录我们可以实现让用户自动选择 因为他本质上是一个字符串

首先是创建一个FolderBrowserDialog对象

然后设置 dialog.ShowNewFolderButton = true;创建新文件夹显示在弹出框里

然后初始化文件位置弹出框的选择位置为系统的桌面位置(Environment.SpecialFolder.Desktop)

如果文件位置弹出框用户在默认选择按钮点击确定(返回结果: // 如果用户在对话框中单击“确定”,则为 System.Windows.Forms.DialogResult.OK;否则为 System.Windows.Forms.DialogResult.Cancel。) 则拼接文件选择的目录 然后返回

这样子我们就实现了用户自定义想要保存的文件位置了 然后我们获取时间并转化为字符串(DateTime.Now.ToString("yyyyMMddhhmmss");)样子可以防止导出的文件名重复 从而出现问题

然后设置文件的保存类型为"Excel文件(.xls)|.xls"; 还可以设置为其它的 具体的可以百度或者查询一下

image.png

然后用DevExpress控件包的方法里的ExportToXls方法去导出到我们选择保存文件的目录和地方 而这个方法有一个参数就是文件路径名 然后就实现导出了