C#连接Excel读取与写入数据库SQL ( 上 )

时间:2021-06-23 04:33:42

第一次写C#与sql的东西,主要任务是从Excel读取数据,再存到SQL server中。

  先上读取Excel文件的code如下。

        public bool GetFiles(string equipName)
{
//choose all sheet? or all data in sheet?
string strExcel = "select * from [Sheet1$]";
//初始化system.IO的配置(路径)
DirectoryInfo directoryInfo1 = new DirectoryInfo(WPath + equipName + "\\Working");
//用文件流来获取文件夹中所有文件,存放到
FileInfo[] files1 = directoryInfo1.GetFiles();
foreach (FileInfo file in files1) // Directory.GetFiles(srcFolder)
{
// 连接到excel 数据源, xlsx要用ACE
string strConn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source= " + file.FullName + "; Extended Properties='Excel 12.0';");
OleDbConnection OledbConn = new OleDbConnection(strConn);
if (IsUsed(file.FullName))
{
flag = IsUsed(file.FullName); continue;
}
try
{
OledbConn.Open();
// 存入datatable
OleDbDataAdapter dAdapter = new OleDbDataAdapter(strExcel, strConn);
            //写入ds中的一个table
dAdapter.Fill(ds);
OledbConn.Dispose();
OledbConn.Close();
}
catch (Exception ex)
{ }
}
}

foreach用于遍历所有Excel文件;

strExcel用于选择Excel文件中sheet的内容,select * 表示选取sheet中所有行和列;

strConn用于设置读取的方法,provider的设置很重要,ACE表示最新的.xlsx文件,jet 表示读取.xls文件,两者有点区别,DataSource表示文件名,包括路径。

OleDbDataAdapter 用于按(命令)去执行填充dataset的功能