2024年4月12日发(作者:)

C# Excel 解决方案

因为现在用到的是winform,对web的解决没有去关注,所以现在只是对winform操

作excel做笔记

以前做考试系统的时候,接触过excel导入,不过当时不是我负责所以了解不多,只是知

道在.net中excel可以想其他数据源一样访问。

C# 操作Excel分两种情况

1.利用office组件,就是要安装office(或者下载dll添加引用也可以,没试过) 。代码

1

2.不利用office组件,而是用TextWriter的某些子类编写器将字节流写入文件,这些文件

其实不是真正的excel文件(可以用记事本打开不乱码),虽然能用excel打开。如果你

在把这些导出的文件当作excel数据源,就不行了。

其实还有一种方法虽然不利用office组件不过当导出到excel的时候有有一个事先创建好

的excel文件(这样比用office组件好点,毕竟有别的编译器可以生成excel文件,不过

这样也只是自欺欺人吧)。这个方法是导出的时候也把已经创建好的excel当做数据源用

eNonQuery()等方法写入excel。我们把这标记为代码3,以便下面

提供代码。

相关代码:

我们先看最后一种方法代码(我开始用的是这个不上不下的方法)

代码3

///

/// 将DataTable导出为excel 自动创建excel

///

/// 数据源

/// 要保存的excel的name

/// 创建的表的名字

public static string ExportTable2ExcelFile(DataTable dt, string ExcelFileName, string

strWorkSheetName)

{

if ((ExcelFileName) == false)

{

return "指定文件不存在!";

}

if (dt == null)

{

return "数据不能为空!";

}

if (ng() == "")

{

return "数据表名不可以为空!";

}

ame = strWorkSheetName;

int iRows = ;

int iCols = ;

StringBuilder stringBuilder;

string connString;

if (iRows == 0)

{

return "没有可导入数据!";

}

stringBuilder = new StringBuilder();

connString = elConnection(ExcelFileName);//

"Provider=.4.0;Data Source=" + ExcelFileName + ";Extended

Properties=Excel 8.0;";