Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用asp.net C打开excel文件#_C#_Asp.net_Excel - Fatal编程技术网

C# 使用asp.net C打开excel文件#

C# 使用asp.net C打开excel文件#,c#,asp.net,excel,C#,Asp.net,Excel,我的要求是打开附件文件夹下的excel文件。因此,我参考了abatishchev的参考资料,并根据我的要求使用了abatishchev。所以我在下面的代码中尝试了这一点 public void ExportExcel() { string str_lwpc_query = string.Empty; str_lwpc_query = "select company_name 'COMPANY NAME',Deputed_Company_Name 'DEPUTED COMPANY NA

我的要求是打开附件文件夹下的excel文件。因此,我参考了abatishchev的参考资料,并根据我的要求使用了abatishchev。所以我在下面的代码中尝试了这一点

public void ExportExcel()
{
   string str_lwpc_query = string.Empty;
   str_lwpc_query = "select company_name 'COMPANY NAME',Deputed_Company_Name 'DEPUTED COMPANY NAME',emp_card_no 'EMP CODE',emp_name 'EMPLOYEE NAME',LWP,'' Remarks,  " +
                    "Adj_Days Gain_Loss_LOP_Days, VAL_DAY LOP_Days_Desc, month, year from XXACL_EMP_INFO_LWP_OTDAYS_HRS_V " +
                     "where emp_type='C' and month = '3' and year = '2015' ";
    DataTable Dt_lwpc = new DataTable();
    Dt_lwpc = CF.ExecuteDT(str_lwpc_query);
    DataSet DS_lwpc = new DataSet();
    DS_lwpc.Tables.Add(Dt_lwpc);
    DS_lwpc.Tables[0].TableName = "Employee loss of pay for consultant Details";
    var directory = Server.MapPath("~/Attachment/");
    ExcelLibrary.DataSetHelper.CreateWorkbook(directory + "Employee_lwpc_Details.xls", DS_lwpc);

    Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
    ExcelLibrary.Office.Excel.Workbook wb = excel.Workbooks.Open(ExcelLibrary.DataSetHelper.CreateWorkbook(directory + "Employee_lwpc_Details.xls", DS_lwpc));
}
但我在最后一行中得到了错误

Microsoft.Office.Interop.Excel.Workbooks.Open(字符串、对象、对象、对象等)的最佳重载方法匹配有一些无效参数


请指出问题所在

Microsoft.Office.Interop.Excel.Workbooks.Open接受一个文件名和许多其他参数,您调用的CreateWorkbook方法没有返回打开所需的参数。

如果您希望网站用户打开您在服务器上创建的Excel文件,你不需要在那里打开它,只需将它发送给用户即可。将最后两行代码替换为:

string filePath = directory + "Employee_lwpc_Details.xls"; 
Response.ContentType = "Application/vnd.ms-excel"; 
Response.AppendHeader("content-disposition", 
"attachment; filename=" + "Employee_lwpc_Details.xls"); 
Response.TransmitFile(filePath); 
Response.End();

@DmitryRotay:尝试获取错误,因为
无法将类型Microsoft.Office.Interop.Excel隐式转换为ExcelLibrary.Office.Excel.Workbook存在显式转换(是否缺少转换)
抱歉,意外删除了我的评论。您正在尝试使用Microsoft的Excel互操作库打开文件-返回的结果类型为
Microsoft.Office.interop.Excel.Workbook
。但是,您希望结果类型是某个自定义库—ExcelLibrary.Office.Excel.Workbook。@DmitryRotay:那么解决方案是什么呢?如果确实要使用Excel interop打开工作簿并使用它,则需要将最后一行替换为:
Microsoft.Office.interop.Excel.Workbook wb=Excel.Workbooks.open(ExcelLibrary.DataSetHelper.CreateWorkbook(目录+“Employee_lwpc_Details.xls”,DS_lwpc));
我现在遇到了问题中提到的相同错误,因此根据这一点我的代码是什么?请更新您是否尝试过使用
ExcelLibrary.Office.Excel.Workbook wb=Excel.Workbooks.Open(目录+“Employee_lwpc_Details.xls”)?如果我正确理解了你的代码,那将打开你创建的工作簿。上面的代码只是将文件放在
附件
文件夹中,但它不会打开文件
ExcelLibrary.DataSetHelper.CreateWorkbook(目录+“Employee\u lwpc\u Details.xls”,DS\u lwpc)
将文件放在附件文件夹中,但
excelbrary.Office.Excel.Workbook wb=Excel.Workbooks.Open(目录+“Employee\u lwpc\u Details.xls”)
打开该文件并为其分配一个局部变量。我也知道这一点,但为什么不打开该文件呢?非常感谢Dmitry耐心等待并逐步解决问题。快乐编码:)