2016-04-13 3 views
1

私の要件は添付ファイルの下にあるExcelファイルを開くことです。だから私はhereから参照を取ってabatishchev私の要件のための答えを使用した。だから私は私の下のコードでそれを試みた。asp.netを使用してExcelファイルを開くC#

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は、ファイル名とのaddiの数を取る

+0

@DmitryRotay:これでコードの最後の2行を交換してみました( '暗黙的ExcelLibrary.Office.Excel.WorkbookにタイプMicrosoft.Office.Interop.Excelを変換することはできませんとして、明示的な変換が存在するエラーを得たあなたは、キャストがありません) ' – BNN

+0

申し訳ありませんが、誤って私のコメントを削除しました。あなたはMicrosoftのExcel interopライブラリでファイルを開こうとしています。返される結果は 'Microsoft.Office.Interop.Excel.Workbook'です。結果の型はカスタムライブラリ(ExcelLibrary.Office.Excel.Workbook)になると予想しています。 –

+0

@DmitryRotay:これは何のための解決策ですか? – BNN

答えて

2

ウェブサイトのユーザーがサーバーで作成した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(); 
+0

忍耐と問題を段階的に解決するためにドミトリーに感謝します。ハッピーコーディング:) – BNN

+0

こんにちは、このリンクを見て、それはExcelファイルの問題に関連していますhttp://stackoverflow.com/questions/36664300/excel-opening-but-not-able-to-view-gridview – BNN

0

間違っているものを示唆していますsee the MSDN documentation here.呼び出すCreateWorkbookメソッドは、Openに必要な引数を返していません。

+0

これは私のコードですか?親切にupdate – BNN

+0

あなたは 'ExcelLibrary.Office.Excel.Workbook wb = excel.Workbooks.Open(directory +" Employee_lwpc_Details.xls "));'を使ってみましたか?あなたのコードを正しく理解していれば、数行を作成したワークブックが開きます。 –

+0

上記のコードはファイルを 'attachment'フォルダに置きますが、ファイル – BNN

関連する問題