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;";


发布评论