System.ArgumentException: «источник кэширования не является рабочим листом», когда я пытаюсь экспортировать свой Excel - PullRequest
0 голосов
/ 07 октября 2019

Я попытался добавить данные БД в существующий файл Excel на сервере, используя ASP.Net. Когда количество записей минимальной ситуации, например, не более 50, я могу добавлять и загружать данные без каких-либо ошибок. Но когда я пытаюсь экспортировать большое количество данных, получаю эту ошибку «System.ArgumentException:« Источник кэширования не является рабочим листом »», пожалуйста, дайте мне решение для этого.

приватный экспорт ActionResult (файлы HttpPostedFileBase) {

        SqlCommand cmd = new SqlCommand("SP_GetData", con);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlParameter ipr = new SqlParameter("@ip1", uname);
        cmd.Parameters.Add(ipr);
        con.Open();
        SqlDataReader rdr = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(rdr);
        string strfilepath = path;

        Response.Clear();
        using (ExcelPackage p = new ExcelPackage())
        {
            using (FileStream stream = new FileStream(strfilepath, FileMode.Open))
            {
                p.Load(stream);

                var wk = p.Workbook.Worksheets.SingleOrDefault(x => x.Name == "Sheet1");

                ExcelWorksheet worksheet = p.Workbook.Worksheets["TEST SHEET"];

                worksheet.Cells["U11"].LoadFromDataTable(dt, false);

            }
            //p.Save() ;
            Byte[] bin = new Byte[100000];
            try
            {
                bin = p.GetAsByteArray();
            }
            catch (Exception ex)
            {

                throw ex;
            }


            System.IO.File.WriteAllBytes(@""+path+"", bin);


        }

        string file = originalpath;
        string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        con.Close();
        return File(file, contentType, Path.GetFileName(file));

        Response.End();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...