C# 读取CSV和EXCEL文件示例

时间:2025-01-21 20:04:44

我们习惯了直接连到数据库上面读取数据表的数据内容;

如果有一天我们需要读取CSV,EXCEL文件的内容的时候,可不可以也像读数据表的方式一样呢?当然可以,使用OleDB ADO.NET是很简单的事情

         public static bool WriteContentToFile(FileStream fs, StringBuilder sb)
{
bool succ = false;
using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
{
sw.WriteLine(sb.ToString());
succ = true; }
return succ;
}

WriteContentToFile

按SQL的方式读取Excel文件

         public static void ImportDictionaryFromExcel(string strExcelFileName,IList<Dictionary> list,bool Exce03Or07)
{ string oleDB = string.Empty; if (Exce03Or07)
{
oleDB = "Jet.OLEDB.4.0";
}
else
{
oleDB = "ACE.OLEDB.12.0";
} string strConn = string.Format("Provider=Microsoft.{0};Data Source={1};Extended Properties='Excel 8.0;HDR=YES;IMEX=1'", oleDB, strExcelFileName); //string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法
string strExcel = "select * from [sheet1$]"; using (IDbConnection conn = new OleDbConnection(strConn))
{
//适配到数据源
IDbDataAdapter adapter = new OleDbDataAdapter(strExcel, (OleDbConnection)conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
DataTable dt =ds.Tables[];
if (dt.Rows.Count > )
{
foreach (DataRow dr in dt.Rows)
{
string name=dr["Name"].ToString().Trim();
string type=dr["Type"].ToString().Trim();
string ripplesTo=dr["RipplesTo"].ToString().Trim();
string engName=dr["ENGName"].ToString().Trim();
string cnName=dr["CNName"].ToString().Trim();
string meaning=dr["Meaning"].ToString().Trim(); } } } }

ImportDictionaryFromExcel