1

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();
}
4

3 に答える 3

2

このdynamicキーワードは、.NET Framework 4.0 以降の一部です。

.NET Framework 4.0 以降をターゲットにしていることを確認します。

于 2013-09-02T08:03:42.103 に答える
1

dynamic最初の問題を回避するためにキーワードを使用しないでください。プロジェクトにへの参照を追加し、ファイルの先頭に を追加します。EPPLususing OfficeOpenXml;

したがって、次のいずれかです。

using OfficeOpenXml;
// ...
ExcelPackage excelPackage = new ExcelPackage();

また

OfficeOpenXml.ExcelPackage excelPackage = new OfficeOpenXml.ExcelPackage();

ところで、ここに別のバグがあります。交換してください

excelWorksheet.Cells("A1")

excelWorksheet.Cells["A1"]...

これは VB.NET から C# に変換されたものだと思います。

于 2013-09-02T08:04:08.477 に答える
0

dynamic は System 名前空間にあります。一番上に追加する必要がありますusing System

およびExcelPackageの場合Microsoft.Office.Interop.Excel

于 2013-09-02T08:02:44.777 に答える