您的位置:首页 > 编程语言 > C#

c# 读写 excel 的类

2013-11-12 13:29 357 查看


c# 读写 excel 的类 暂时没有写全,知识满足我的应用

引用的时候注意 namespace

1. 暂时只写了一个 载入 excel 的接口 ,返回的是 dataset

关于dataset 的操作,简单弄了一个 ,查表并打印出来

private void button1_Click(object sender, EventArgs e)

{

m_DataSet = new DataSet();

ExcelOperation myExcel = new ExcelOperation("fileExcel.xls");

m_DataSet=myExcel.ExcelRead();

if (textBox1.Text.Length < 8) return;

for (int i = 0; i < m_DataSet.Tables[0].Rows.Count; i++)

{

if(m_DataSet.Tables[0].Rows[i][1].ToString()==textBox1.Text)

MessageBox.Show(m_DataSet.Tables[0].Rows[i][1].ToString());

}

}

using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Reflection;

namespace PrintInfoForMarket
{
class ExcelOperation
{
private string m_FilePath;
private string m_Oleconn;
private OleDbConnection m_Conn;

public ExcelOperation(string filepath)
{
m_FilePath = filepath;
m_Oleconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + m_FilePath + ";" + "Extended Properties='Excel 8.0;HDR=NO'";
//string oleconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\\WebCHat\\excel\\test.xls;Extended Properties='Excel 8.0;HDR=YES'";
//  HDR=NO 即无字段
//   HDR=yes 即有字段,一般默认excel表中第1行的列标题为字段名,如姓名、年龄等
//如果您在连接字符串中指定 HDR=NO,Jet OLE DB 提供程序将自动为您命名字段(F1 表示第一个字段,F2 表示第二个字段,依此类推);
// IMEX 表示是否强制转换为文本
//   Excel 驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。
//如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时),
//驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。
//(如果各种数据类型的数量相当,则采用数值类型。)
//Excel 工作表中大部分单元格格式设置选项不会影响此数据类型判断。
//可以通过指定导入模式来修改 Excel 驱动程序的此行为。
//若要指定导入模式,请在“属性”窗口中将 IMEX=1 添加到 Excel
//连接管理器的连接字符串内的扩展属性值中。
m_Conn = new OleDbConnection(m_Oleconn);
}
~ ExcelOperation(){}

public DataSet ExcelRead()
{
m_Conn.Open();
string str_sql = "select * from [Sheet1$]";
OleDbDataAdapter oda = new OleDbDataAdapter(str_sql, m_Conn);
DataSet ds = new DataSet();
oda.Fill(ds);
m_Conn.Close();
return ds;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: