1

DB で MySQL クエリを実行するプロジェクトに取り組んでいます。その場で生成するExcelシートに結果をフィードする必要があります。msdnチュートリアルとstackoverflowで見つけた情報を使用してコードを開始しましたが、アプリケーションを実行すると

"オブジェクト参照がオブジェクト インスタンスに設定されていません。"

この時点で、コードでスプレッドシート全体の作成を開始する前に、これを機能させたかったので、基本的なコードを開始しました。

                    var excelApp = new Excel.Application();
                    excelApp.Visible = true;
                    Excel.Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;
                    ((Excel.Range)workSheet.Cells[1, 1]).Value = "Print Date:";

さらに情報を提供できる場合は、お尋ねください。あなたが私に提供できる情報や洞察に感謝します!

4

2 に答える 2

2

まだ存在しないためworkSheet、null に設定されていると言えます。excelApp.ActiveSheet

使用できるワークシートオブジェクトを作成するコードを次に示します...

var application = new Application();

var workbooks = application.Workbooks;

var workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);

var worksheets = (Sheets)workbook.Worksheets;

var worksheet = worksheets[1];

Excel を使用する際の注意事項:

  • System.Runtime.InteropServices.Marshal.ReleaseComObject(object)使い終わったら、すべてのオブジェクトを解放します。そうしないと、完了時に Excel が終了しません。
  • 二重ドット参照 (つまり、object1.object2.value) を使用しないでください。そうすると、上記のように適切にリリースできなくなります。
  • インデックスは常に 0 ではなく 1 から始まります (とにかく私の経験では)。
于 2013-03-15T05:21:03.597 に答える
0

このエラーが発生する理由は、アプリケーションでワークシートを作成していないためです。これをやってみてください。

Excel.Worksheet newWorksheet;

newWorksheet = (Excel.Worksheet)excelApp.Worksheets.Add();

于 2013-03-15T05:23:22.067 に答える