我生成excel文件的代码如下:
protected void btnReport_Click(object sender, EventArgs e)
{
try
{
Session["institute"] = "ABC";
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
SqlCommand cmd = new SqlCommand("select * from alumni_details where institute_name='" + Session ["institute"].ToString () + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
GenerateXLSXFile(ds .Tables [0]);
}
catch (Exception)
{
throw;
}
}
当我调用此函数时生成excel报告的函数我得到上述错误
private void GenerateXLSXFile(DataTable tbl)
{
dynamic excelPackage = new ExcelPackage();
dynamic excelWorksheet = excelPackage.Workbook.Worksheets.Add("DemoPage");
excelWorksheet.Cells("A1").LoadFromDataTable(tbl, true);
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx");
MemoryStream stream = new MemoryStream(excelPackage.GetAsByteArray());
Response.OutputStream.Write(stream.ToArray(), 0, stream.ToArray().Length);
Response.Flush();
Response.Close();
}
答案 0 :(得分:2)
dynamic
关键字是.NET Framework 4.0及更高版本的一部分。
确认您的目标是.NET Framework 4.0或更高版本。
答案 1 :(得分:1)
请勿使用dynamic
关键字解决初始问题。您项目中的Add a reference到EPPLus
以及文件顶部的using OfficeOpenXml;
。
所以:
using OfficeOpenXml;
// ...
ExcelPackage excelPackage = new ExcelPackage();
或
OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage();
顺便说一句,这是另一个错误,替换
excelWorksheet.Cells("A1")
与
excelWorksheet.Cells["A1"]...
我认为这是从VB.NET转换为C#。
答案 2 :(得分:0)
dynamic驻留在System命名空间中。你应该在顶部添加using System
。
和ExcelPackage Microsoft.Office.Interop.Excel