在开发中,常常需要将数据输出到Excel中。而对于C#开发者而言,使用Microsoft.Office.Interop.Excel库生成Excel文件是一个非常方便的方法。本文将介绍如何使用该库和C#来生成Excel文件。
首先,需要使用Visual Studio创建一个C#控制台应用程序。在项目中添加对Microsoft.Office.Interop.Excel的引用,以便使用它来生成Excel文档。
接着,在代码中使用以下代码来创建Excel应用程序对象:
using Microsoft.Office.Interop.Excel; // 引用 Microsoft.Office.Interop.Excel 库
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// 创建 Excel 应用程序对象
Application app = new Application();
// 创建 Workbooks 对象
Workbooks books = app.Workbooks;
// 添加一个新的Workbook
Workbook book = books.Add(XlWBATemplate.xlWBATWorksheet);
// 选择第一个Worksheet
Worksheet sheet = (Worksheet)book.Worksheets[1];
// 设置单元格的值
sheet.Cells[1, 1] = "姓名";
sheet.Cells[1, 2] = "年龄";
sheet.Cells[2, 1] = "张三";
sheet.Cells[2, 2] = "20";
sheet.Cells[3, 1] = "李四";
sheet.Cells[3, 2] = "21";
// 保存 Excel 文件
book.SaveAs("D:\\sample.xlsx");
book.Close();
app.Quit();
}
}
}
在这里,使用Microsoft.Office.Interop.Excel库中的对象来设置Excel文件的名称、文件内容、单元格格式等。最后,将Excel文件保存到一个指定的位置,然后关闭Excel应用程序。
在使用Microsoft.Office.Interop.Excel进行开发时,需要注意:Excel应用程序对象和Excel文件对象会占用大量系统资源,因此在生成Excel文件后,应严格按照以上代码进行释放。另外,本文只是一个简单的Excel文件创建示例,更多复杂的功能可以参考Microsoft.Office.Interop.Excel库中的方法和属性来实现。
上面的代码是写固定的,如果是动态的,则可以:
public static bool ExportDataTable(System.Data.DataTable tb, string filename)
{
if (tb.Rows.Count == 0) { return false; }
//建立Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)excel.Worksheets.get_Item(1);
ws.Name = "MyTest";
//生成字段名称
for (int i = 0; i < tb.Columns.Count; i++)
{
ws.Cells[1, i + 1] = tb.Columns[i].ColumnName;
}
//填充数据
for (int i = 0; i < tb.Rows.Count - 1; i++)
{
for (int j = 0; j < tb.Columns.Count; j++)
{
if (tb.Rows[i][j].GetType() == typeof(string))
{
ws.Cells[i + 2, j + 1] = "'" + tb.Rows[i][j].ToString();
}
else
{
ws.Cells[i + 2, j + 1] = tb.Rows[i][j].ToString();
}
}
}
if (!string.IsNullOrWhiteSpace(filename)) { ws.SaveAs(filename); }
excel.Quit();
return true;
}