试图获得文件路径与打开对话框

本文关键字:路径 打开对话框 文件 | 更新日期: 2023-09-27 18:13:10

我目前正在使用epPlus与它一起保存当前数据库到excel文件的web应用程序。这部分很容易工作,但我要做的是创建一个弹出对话框,允许客户端选择他们想要保存excel文件的目录。然后使用他们给我的路径,并使用epPlus中的savea功能和他们选择的路径。

问题是我如何让对话框工作并获得路径?我试过使用响应,我似乎不能得到的工作。问题是,excel文件只是一个对象,直到保存完成,我需要路径来做保存。想法吗?这是我的代码。

    protected void OnbtnSaveExcelFileClick(object sender, EventArgs e)
    {
        String FileName = "GamingRecords";
        String FilePath = @"C:'....'";
        System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
        response.ClearContent();
        response.Clear();
        response.ContentType = "text/plain";
        response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
        response.TransmitFile(FilePath);
        response.Flush();
        response.End();
        try
        {
            using (var package = new ExcelPackage(flUploadLink.FileContent))
            {
                var worksheet = package.Workbook.Worksheets.Add("Games to Date - " + DateTime.Now.ToShortDateString());
                worksheet.DefaultRowHeight = 22;
                var headers = new[] { Constants.GameTitle, Constants.GameGenre, Constants.Price, Constants.Quantity };
                for (var i = 1; i < headers.Count() + 1; i++)
                    worksheet.Cells[1, i].Value = headers[i - 1];
                var game = new GameClass();
                var list = game.FetchAll();
                var rowNumber = 2;
                foreach (var t in list)
                {
                    worksheet.Cells[rowNumber, 1].Value = t.GameTitle;
                    worksheet.Cells[rowNumber, 2].Value = t.GameGenre;
                    worksheet.Cells[rowNumber, 3].Value = t.Price;
                    worksheet.Cells[rowNumber, 4].Value = t.Quantity;
                    rowNumber++;
                }
                for (var i = 1; i < worksheet.Dimension.End.Column; i++)
                    worksheet.Column(i).AutoFit();
                package.Workbook.Properties.Title = "Games on Record";
                package.Workbook.Properties.Author = "Kirk Rudzinski";
                package.Workbook.Properties.Company = "Logistics+";
                package.Save();
                litExcelError.Visible = false;
            }
        }
        catch (IOException)
        { litExcelError.Text = "Please close the file to make modifications"; }
    }

试图获得文件路径与打开对话框

好吧,只是为了澄清我想出了如何做到这一点,我正在尝试的方式。供参考,以防有人遇到这样的错误,这里是代码!

    protected void OnbtnSaveExcelFileClick(object sender, EventArgs e)
    {
        try
        {
            using (var package = new ExcelPackage(flUploadLink.FileContent))
            {
                var worksheet = package.Workbook.Worksheets.Add("Games to Date - " + DateTime.Now.ToShortDateString());
                worksheet.DefaultRowHeight = 22;
                var headers = new[] { Constants.GameTitle, Constants.GameGenre, Constants.Price, Constants.Quantity };
                for (var i = 1; i < headers.Count() + 1; i++)
                    worksheet.Cells[1, i].Value = headers[i - 1];
                int rowNumber = 2;
                foreach (GridViewRow row in grdGamingTable.Rows)
                {
                    var index = row.RowIndex; 
                    worksheet.Cells[rowNumber, 1].Value = grdGamingTable.Rows[index].Cells[2].Text;
                    worksheet.Cells[rowNumber, 2].Value = grdGamingTable.Rows[index].Cells[3].Text;
                    worksheet.Cells[rowNumber, 3].Value = Convert.ToInt16(grdGamingTable.Rows[index].Cells[4].Text);
                    worksheet.Cells[rowNumber, 4].Value = Convert.ToInt16(grdGamingTable.Rows[index].Cells[5].Text);
                    rowNumber++;
                }

                for (var i = 1; i < worksheet.Dimension.End.Column; i++)
                    worksheet.Column(i).AutoFit();
                package.Workbook.Properties.Title = "Games on Record";
                package.Save();
                litExcelError.Visible = false;
                Response.Clear();
                Response.AddHeader("content-disposition", "attachment;  filename=GameRecords.xlsx");
                Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.BinaryWrite(package.GetAsByteArray());
                Response.End();
            }
        }
        catch (IOException)
        { litExcelError.Text = "Please close the file to make modifications"; }
    }