C#生成excel文件并写入单元格

时间:2013-03-15 05:03:34

标签: c# excel

我正在开发一个在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:";

如果我能提供更多信息,请询问。我非常感谢您能为我提供的任何信息或见解!

2 个答案:

答案 0 :(得分: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(根据我的经验)。

答案 1 :(得分:0)

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

Excel.Worksheet newWorksheet;

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