欢迎使用CSDN-markdown编辑器
来源:互联网 发布:win10安装java没反应 编辑:程序博客网 时间:2024/05/29 11:48
导入英语模板
①、获取excel中的多个sheet
#region 获取上传的Excel的所有的sheet名字的集合 //获取全部Sheet名 public ArrayList ExcelSheetName(string filepath) { string strConn; strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=2'"; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); DataTable dtsheetNames = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); ArrayList strTableNames = new ArrayList(); conn.Close(); for (int k = 0; k < dtsheetNames.Rows.Count; k++) { strTableNames.Add(dtsheetNames.Rows[k]["TABLE_NAME"].ToString()); } return strTableNames; } #endregion
②、在字典表中查找sheet对应的英语名称
③、获取待导入的数据库的表名
④、获取题库表的第一条数据,取出对应题型中excel中应该包含的字段
/// <summary> /// 获取题库表的第一条数据,为获得表结构--郑浩 /// </summary> /// <param name="strCourseID">课程ID</param> /// <param name="CourseType"></param> /// <returns></returns> public ArrayList GetExcelColumns(string TableName) { ArrayList strExcelColumns = new ArrayList();//用于保存查询出来的对应题型的需要包含的字段 try { DataTable tdQueryType = new DataTable(); StringBuilder strSql = new StringBuilder(); strSql.Append("select * from "); strSql.Append(TableName + " limit 1"); tdQueryType = MySQLHelper.ExecuteDataTable(strSql.ToString());//获得第一条数据 //取出对应题型中excel中应该包含的字段 for (int i = 0; i < tdQueryType.Columns.Count; i++) { //去除表中与excel不对应的字段 if ((tdQueryType.Columns[i].ToString()).ToUpper() == "ADDUSER" || (tdQueryType.Columns[i].ToString()).ToUpper() == "REMARK" || (tdQueryType.Columns[i].ToString()).ToUpper() == "TIMESTAMP" || (tdQueryType.Columns[i].ToString()).ToUpper() == "OTHER1") //|| (tdQueryType.Columns[i].ToString()).ToUpper() == "OTHER2" { continue; } strExcelColumns.Add(tdQueryType.Columns[i].ToString()); } } catch (System.Exception message) { throw new Exception("获取Excel中应有字段名失败 " + message.Message); } return strExcelColumns; }
⑤、将获取的英文字段转换为中文字段
⑥、判断上传的excel中是否有多余的列和全部的字段
//判断上传的excel中是否有多余的列 if (dtCurrent.Columns.Count != headfields.Count) { Response.Write("<script>alert('待导入的模板中存在多余的列(空值列),请检查模板格式或重新下载模板!')</script>"); return null; } //判断dtCourse中是否包含全部要求的字段 for (int j = 0; j < headfields.Count; j++) { // //只要有一个字段不被包含,则提示"数据源缺少必要的字段",并退出循环和整个方法 if (!dtCurrent.Columns.Contains(headfields[j].ToString())) { string a = headfields[i].ToString(); string msg = "数据源缺少必要的字段, " + headfields[j].ToString() + " 请检查数据源!"; Response.Write("<script>alert("+ msg + ")</script>"); return null; } } ////判断数据源中是否有数据 if (dtCurrent.Rows.Count == 0) { Response.Write("<script>alert('Excel文件中没有任何数据,请填充数据!')</script>"); //退出方法 return null; }
1 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 动态聚类法
- DOS指令
- 数据库设计14个技巧
- Web_PHP_微信_接口验证、简单文本响应;
- jsp:include引入jsp文件的时候(如果被包含的文件存在js文件),不要用相对路径
- 欢迎使用CSDN-markdown编辑器
- EasyUi的ComboBox(下拉列表框)
- Hi3516A linux kernel 编译步骤详细说明
- Unix系统编程(3) - 进程
- java中的四舍五入的问题
- Java实现Redis的消息订阅和发布
- Spring+SpringMVC 文件批量同步上传
- 使用第三方SDK中出现的错误
- C++操作SQLITE获得查询结果集的几种方法总结