C# 使用asp.net C打开excel文件#
我的要求是打开附件文件夹下的excel文件。因此,我参考了abatishchev的参考资料,并根据我的要求使用了abatishchev。所以我在下面的代码中尝试了这一点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
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耐心等待并逐步解决问题。快乐编码:)