1

asp.netでボタンを押しながら、このコードを使用してクライアントのマシンでExcelファイルを作成しています

 protected void excldwnlbtn4_Click(object sender, EventArgs e)
{
    write_on_excel("Vendor.xls");
    lblmsg4.Text = "File Downloaded";
}

Excelファイルのコードの作成は次のとおりです。

public void write_on_excel(string filepath)
{
    Excel.ApplicationClass excelApp = new Excel.ApplicationClass();
    try
    {

        Excel.Workbook workbook = (Excel.Workbook)excelApp.Workbooks.Add(Missing.Value);
        Excel.Worksheet worksheet;


        //// Opening excel file
        //workbook = excelApp.Workbooks.Open(filepath, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);



        workbook.SaveAs(filepath,
        Excel.XlFileFormat.xlExcel5, Missing.Value, Missing.Value,
        false, false, Excel.XlSaveAsAccessMode.xlNoChange,
        Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

        // Get first Worksheet
        worksheet = (Excel.Worksheet)workbook.Sheets.get_Item(1);

        // Setting cell values

        ((Excel.Range)worksheet.Cells[1, "A"]).Value2 = "Vendor Code";
        ((Excel.Range)worksheet.Cells[1, "B"]).Value2 = "Vendor Password";
        ((Excel.Range)worksheet.Cells[1, "C"]).Value2 = "Vendor Name";


        workbook.Save();
        workbook.Close(0, 0, 0);
    }
    catch (Exception)
    {
        lblmsg4.Text = "File not Downloaded!!";
    }
    finally
    {
        excelApp.Quit();
    }
}

IIS ローカルホストで正常に動作するようになりました..ハードドライブにこれらの列ヘッダーを含む空の Excel ファイルを取得しています....しかし、サーバーでホストしてライブにすると、作成できませんExcelファイル...エラーが発生しています:

Server Error in '/' Application.

The resource cannot be found.  

私は何をすべきか??私のせいはどこですか?これについて私を助けてください

4

2 に答える 2

0

ここにはいくつかの問題があります。

1 つは、サーバーに Excel が存在することを期待していることです。存在するかどうかわからない場合は、存在しない可能性が高いため、アプリケーションで確認する必要があります。基本的に、Excel オブジェクトをインスタンス化しようとして例外が発生した場合は、Excel が存在しないか、実行する権限がありません。

2 つ目は、出力ファイルをサーバー上でローカルに保存することです (ファイルを生成できる場合)。これは、魔法のようにファイルをクライアントに送信するわけではありません。ファイルは自分で送信する必要があります。サーバー上にローカル コピーを作成するのではなく、ASP.NET ページで Excel ファイルをストリームに出力することをお勧めします。クライアントはストリームを受け取ります。詳細については、こちらをご覧ください: http://www.gemboxsoftware.com/support/articles/asp-net-excel

最後に、Excel ファイルを生成する方法は他にもあります。OpenXML ( http://openxmldeveloper.org/を参照) などのライブラリを使用するか、組み込みクラスを使用して Excel が読み取ることができる XML ファイルを生成することができますSystem.Xml。Aspose Cells など、.NET で Excel ファイルを操作するための市販のライブラリもあります ( http://www.aspose.com/categories/.net-components/aspose.cells-for-.net/default. aspx )。

于 2012-11-15T10:29:11.780 に答える
0

これにより、ブラウザ クライアントのマシン上にファイルが作成されることはありません (そのマシンが Web サーバーを台無しにしているマシンでない限り)。

ブラウザー クライアントがファイルをダウンロードできるようにする場合は、たとえば、応答ストリームに直接書き込む必要があります。詳細については、このスレッドで最高ランクの回答をご覧ください

ボタンのクリックで ASP.NET Excel ファイルをダウンロード

于 2012-11-15T10:19:44.203 に答える