读取Excel中值(DataTable)

#region 根据目录得到当前目录和子目录下的所有文件

//文件绝对路径列表
private List<string> files = new List<string>();

/// <summary>
/// 根据目录得到当前目录和子目录下的所有文件
/// </summary>
/// <param name="rootPath">根目录</param>
private void GetAllDirectories(string rootPath)
{

string[] subPaths = System.IO.Directory.GetDirectories(rootPath);//得到所有子目录

foreach (string path in subPaths)
{
GetAllDirectories(path);//对每一个字目录做与根目录相同的操作:即找到子目录并将当前目录的文件名存入List
}

string[] files = System.IO.Directory.GetFiles(rootPath);

foreach (string file in files)
{
this.files.Add(file);//将当前目录中的所有文件全名存入文件List
}

}



/// <summary>
/// 读出Excel表中的数据,插入到数据库中
/// </summary>
/// <returns></returns>
public string ReadExcelAddDatabase()
{
var path = "Views/upload/cx";
var str = "";
var excelPath = "";
//获得指定目录下的文件列表
GetAllDirectories(Server.MapPath("~/" + path + ""));
for (int p = 0; p < files.Count; p++)
{
excelPath = files[p].ToString();
//获得最后三个字符 来确定是否是Excel文件
var ext = excelPath.Substring(excelPath.LastIndexOf('.') + 1, 3);
if (ext == "xls")
{
//如果是关闭状态 则打开连接
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + excelPath;
OleDbConnection oleConn = new OleDbConnection(connStr);
if(oleConn.State == ConnectionState.Closed)
oleConn.Open();
// 查询语句
string sql = "SELECT * FROM [Sheet1$]";
DataTable dt = new DataTable();
OleDbDataAdapter oleDa = new OleDbDataAdapter(sql, connStr);
oleDa.Fill(dt); // 填充DataSet

var dtRows = dt.Rows.Count;
var dtColumns = dt.Columns.Count;
for (int i = 1; i < dt.Rows.Count; i++)
{
var 姓名 = dt.Rows[i][0];
var 准考证号码 = dt.Rows[i][1];
var 身份证号码 = dt.Rows[i][2];
var 考生区县 = dt.Rows[i][3];
var 考生乡镇村卫生室 = dt.Rows[i][4];
var 考试地点 = dt.Rows[i][5];
var 考场 = dt.Rows[i][6];
var 座号 = dt.Rows[i][7];

str += "第" + i + "个人<br/>" + 姓名 + "<br/> " + 准考证号码 + "<br/> " + 身份证号码 + "<br/> " + 考生区县 + "<br/> " + 考生乡镇村卫生室 + "<br/> " + 考试地点 + "<br/> " + 考场 + "<br/> " + 座号;
str += "<br/>";
}

}
}
return str;
}

#endregion
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值