1

我正在开发一个在数据库上运行 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)。如果你这样做,你不能像上面那样正确释放它。
  • 索引总是从 1 开始,而不是 0(无论如何根据我的经验)。
于 2013-03-15T05:21:03.597 回答
0

您收到该错误的原因是,您尚未在应用程序中创建任何工作表。尝试这样做。

Excel.Worksheet 新工作表;

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

于 2013-03-15T05:23:22.067 回答