2

私は、クライアント マシンで Excel ファイルを作成する必要があるプログラムを作成している途中で、保存して更新した後、再度インポートしてデータベースに変更を適用する必要があります。エクスポート ビットは正常に動作しますが、Web アプリケーションからインポートすると、ワークブックにワークシートがありません。開発マシンで実行すると、つまり、ファイルが配置されているのと同じマシンで Web サイトが実行されている場合、正常に動作します。

私のコードは次のとおりです。

try
    {
        Productsfile = new FileInfo(PathandFileName);
    }
    catch (Exception ex)
    {
        lblStatus.Text = string.Format("Error getting file info {0}", ex.Message);
        return;
    }

    lblStatus.Text += "File Opened succesfully " + Productsfile.FullName + Environment.NewLine;

    //Open and read file
    try
    {
        using (ExcelPackage datafile = new ExcelPackage(Productsfile))
        {

            ExcelWorkbook wkb = datafile.Workbook;


            if (wkb != null)
            {

                lblStatus.Text += string.Format("The workbook is not null and there are {0} worksheets", wkb.Worksheets.Count) + Environment.NewLine;

コードが最後のラベルの更新に到達することを確認しました。これは、ワークブックにワークシートがないことを示していますが、ワークブック自体が null ではないことが重要です。

エクスポートを作成したとき、データ ストリームをサーバーからクライアントに転送する次のコードが使用されました。

Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;  filename=Products.xlsx");
        Response.BinaryWrite(pck.GetAsByteArray());
        Response.End();
4

1 に答える 1