#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
//文件绝对路径列表
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