Я попытался добавить данные БД в существующий файл 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();
}