找不到类型或命名空间名称“dynamic”,找不到类型或命名空间名称“ExcelPackage”

时间:2013-09-02 07:59:34

标签: c# asp.net

我生成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();
}

3 个答案:

答案 0 :(得分:2)

dynamic关键字是.NET Framework 4.0及更高版本的一部分。

确认您的目标是.NET Framework 4.0或更高版本。

答案 1 :(得分:1)

请勿使用dynamic关键字解决初始问题。您项目中的Add a referenceEPPLus以及文件顶部的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