最近需要将DataGridView 中的数据导出到Excel,已做不时之需!所以,网上搜了下相关资料,这部分资料还是很全的,只是都有些小bug。我做了下整理和修复。贴在这里备自己以后用,方便,也便于大家分享!
1. 安装Microsoft.Office.Interop.Excel 。这里我是按照Nuget 安装的 (引用->管理NuGet程序包->浏览-> 安装Microsoft.Office.Interop.Excel)。这里需要注意的是:创建Excel对象的时候,Microsoft.Office.Interop.Excel.Application xlApp = new ApplicationClass();这里会报错,解决方式是:找到引用的引用。然后右键属性,设置嵌入互操作类型为false!
2. Copy代码。这里是封装到一个Class里面了。便于后面调用。
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
using System.Diagnostics;
using System.IO;
using Microsoft.Office.Interop.Excel;
namespace UI
{
public class ExportDGVToExcel
{
private const int OLDOFFICEVESION = -4143;
private const int NEWOFFICEVESION = 56;
/// <summary>
/// DataGridView导出Excel
/// </summary>
/// <param name="strCaption">Excel文件中的标题</param>
/// <param name="myDGV">DataGridView 控件</param>
/// <returns>0:成功;1:DataGridView中无记录;2:Excel无法启动;100:Cancel;9999:异常错误</returns>
public int ExportExcel(string strCaption, DataGridView myDGV, SaveFileDialog saveFileDialog)