-1

最初に、以前に質問したことをお詫びしますが、静かな時間に投稿したため、回答が得られませんでした。

xlsx ドキュメントの列からフォーム ベースのプログラムの配列リストにデータを読み込もうとしているので、さまざまなデータを呼び出して onscren を操作したり、単に表示したりできますが、一部のコードを動作させることができません。フォーラムを検索したところ、ポスター作品によるとこれが見つかりましたが、問題が発生しています。Excel に関連するコードを記述する必要がなかったため、文字通りこの問題に固執しています。

スローされるエラーは、「サーバー、欠落、およびセッション」という言葉が現在のコンテキストに存在しないことです。セッションがwinformsアプリケーションの一部ではないことは承知していますが、どうすればよいかわかりません。

using Microsoft.Office.Interop.Excel;

これがメインコードです

string filePath = "SampleData.xlsx";

try
{
   Excel.Application appExl;
   Excel.Workbook workbook;
   Excel.Worksheet NwSheet;
   Excel.Range ShtRange;
   appExl = new Excel.Application();
   workbook = appExl.Workbooks.Open(filePath);
   workbook = appExl.Workbooks.Open(Server.MapPath(filePath), Missing.Value,         Missing.Value,
   Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
   Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
   NwSheet = (Excel.Worksheet)workbook.Sheets.get_Item(1);

   int Cnum = 0;
   int Rnum = 0;

   ShtRange = NwSheet.UsedRange;
   DataTable dt = new DataTable();

   for (int row = 1; row <= ShtRange.Rows.Count; row++)
   {
      string str = Convert.ToString((ShtRange.Cells[row, 1] as Excel.Range).Value2);
      dt.Columns.Add(str);
   }

   workbook.Close(true);
   appExl.Quit();

   Session["data"] = dt;

   return true;
}

catch (Exception ex)
{
   return false;
}

これは、あるべき姿をよりよく表していますか?

 using Excel = Microsoft.Office.Interop.Excel;
 using System.Reflection;

 string FilePath = "SampleData.xlsx";

    Excel.Application appExl;
    Excel.Workbook workbook;
    Excel.Worksheet NwSheet;
    Excel.Range ShtRange;
    appExl = new Excel.Application();
    workbook = appExl.Workbooks.Open(FilePath);

    NwSheet = (Excel.Worksheet)workbook.Sheets.get_Item(1);

    int Cnum = 0;
    int Rnum = 0;

    ShtRange = NwSheet.UsedRange;
    DataTable dt = new DataTable();

    for (int row = 1; row <= ShtRange.Rows.Count; row++)
    {
       string str = Convert.ToString((ShtRange.Cells[row, 1] as Excel.Range).Value2);
       dt.Columns.Add(str);
    }

    workbook.Close(true);
    appExl.Quit();
4

1 に答える 1