本人电脑环境:Window7 32位、Visual Studio Enterprise 2015、Microsoft Office2010
步骤一:在项目中添加引用
1、在[计算机] 中搜索Microsoft.Office.Interop.Excel.dll文件 >> 把该文件拷贝到代码目录。
2、Visual Studio Enterprise 2015 >> [解决方案资源管理器] >> 鼠标右键 [引用] >> 选择[添加引用] >> 进入[浏览]项 >> 点击[浏览]按钮,选择你前面复制的Microsoft.Office.Interop.Excel.dll文件 >> 点[确定]。
遇到的问题:
a、错误提示:命名空间“Microsoft”中不存在类型或命名空间名“Office”(是否缺少程序集引用?)
解决方式: [引用管理器]中的[COM] >> 添加[类型库]下的“Microsoft Office 14.0 Object Library”。
b、错误提示:命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是否缺少程序集引用?
解决方式:根据网上说的
(方法1)步骤:添加 [引用管理器]中的[COM]->[类型库]下的“Microsoft Office 14.0 Object Library”。
结果:报一样的错。
(方法2)步骤:在 [引用管理器]中的[程序集]->[扩展]下勾选Microsoft.Office.Interop.Excel
结果:在[扩展]下没有看到有这项。
(方法3)步骤:在[计算机]中搜索Microsoft.Office.Interop.Excel.dll文件->把该文件拷贝到代码目录->
[引用管理器]->进入[浏览]项->点击[浏览]按钮,选择你前面复制的Microsoft.Office.Interop.Excel.dll文件。
结果:成功解决该问题。
步骤二:简单代码实例
using Excel = Microsoft.Office.Interop.Excel; //引用命名空间并起别名:Excel
/// <summary>
/// 写入指定内容到excel的指定位置
/// </summary>
/// <param name="FilePath">Excel文件的路径</param>
/// <param name="content">要写入的内容</param>
/// <param name="RowsNum">起始行</param>
/// <param name="ColsNum">起始列</param>
/// <returns></returns>
public void WriteExl(string FilePath, string[] content, int RowsNum, int ColsNum)
{
//创建Application对象
Excel.Application mApp = new Excel.Application();
//获得workbook对象,打开已有文件
Excel.Workbook mBook = mApp.Workbooks.Open(FilePath);
//创建Sheet对象
Excel.Worksheet mSheet = (Excel.Worksheet)mBook.Sheets[1];
//创建行对象
Excel.Range mRow = (Excel.Range)mSheet.Rows[RowsNum + 1];
//插入空的新行 //为了新写入的数据永远在第一行
mRow.Insert();
//写入数据
int v = 0;
for (int i = ColsNum; i < (content.Length + ColsNum); i++)
{
mSheet.Cells[RowsNum + 1, i] = content[v];
v++;
}
//保存文档
mBook.Save();
//释放内存
mSheet = null;
mBook.Close();
mBook = null;
mApp.DisplayAlerts = false;
mApp.Quit(); //结束进程
mApp = null;
}
/// <summary>
/// 调用WriteExl函数
/// </summary>
void test()
{
string[] mTestRlt = new string[3]; //要写入的内容
mTestRlt[0] = "A";
mTestRlt[1] = "B";
mTestRlt[2] = "C";
WriteExl("C://TestResult.xlsx", mTestRlt, 0, 0); //从第1行、第1列开始写入 A B C
}
效果: