黑妞与白胖
愿得一人心,白首不相离!

/// <summary>    

/// 操作课程报表模板        

/// </summary>        

/// <param name="folder">文件夹路径</param>  

 /// <param name="filePath">文件路径</param>        

/// <param name="templatePath">模板路径</param>        

/// <param name="imgpath">图片路径</param>        

/// <param name="coursewareList">课件列表数据</param>        

/// <param name="parameterList">参数列表数据</param>        

/// <param name="equipmentList">设备列表数据</param>        

/// <returns></returns>        

public string OperateCourseExcelTemplate(string folder, string filePath, string templatePath, string imgpath, DataTable coursewareList, DataTable parameterList, DataTable equipmentList, DataTable lineList)        

{            

string langType = LangHelper.LangGet() == LangType.EN ? "EN" : "CN"; //判断语言类型                                

try            

{                

File.Copy(templatePath, filePath);                

// 使用OleDb驱动程序连接到副本                

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;");                

using (conn)                

{                    

conn.Open();                    

OleDbCommand cmd = null;                    

//课件列表                   

  if (coursewareList.Rows.Count > 0)                    

{                        

for (int i = 0; i < coursewareList.Rows.Count; i++)                        

{      //区分中英文模板,'课件列表'是sheet名称,后面的列名称  (注意要跟模板名称匹配)                                               

if (langType == "CN")                            

{                                

cmd = new OleDbCommand("INSERT INTO [课件列表$]([课件名称],[语言],[文件类型])"                               

+ " VALUES(@LocalFileName, @Language, @FileType)", conn);                            

}                            

else                           

  {                                

cmd = new OleDbCommand("INSERT INTO [InstructionList$]([InstructionName],[Language],[FileType])"                              

+ " VALUES(@LocalFileName, @Language, @FileType)", conn);                            

}                            

cmd.Parameters.AddWithValue("@LocalFileName", coursewareList.Rows[i]["LocalFileName"].ToString());                            

cmd.Parameters.AddWithValue("@Language", coursewareList.Rows[i]["Language"].ToString());                            

cmd.Parameters.AddWithValue("@FileType", coursewareList.Rows[i]["FileType"].ToString());                            

cmd.ExecuteNonQuery();                        

}                    

}                    

//参数列表                    

if (parameterList.Rows.Count > 0)                    

{                        

for (int i = 0; i < parameterList.Rows.Count; i++)                        

{                            

if (langType == "CN")                            

{                                

cmd = new OleDbCommand("INSERT INTO [参数列表$]([实验室名],[设备别名],[接口名],[端口名],[参数名],[参数值])"                               

+ " VALUES(@ElabName,@DeviceTypeDisplayName,@InterfaceName,@PortName,@ParameterKey,@ParameterValue)", conn);                            

}                            

else                            

{                                

  cmd = new OleDbCommand("INSERT INTO [ParameterList$]([ElabName],[DisplayName],[InterfaceName],[PortName],[ParameterName],[ParameterValue])"                                 + " VALUES(@ElabName,@DeviceTypeDisplayName,@InterfaceName,@PortName,@ParameterKey,@ParameterValue)", conn);                            

}                            

cmd.Parameters.AddWithValue("@ElabName", parameterList.Rows[i]["ElabName"].ToString());                            

cmd.Parameters.AddWithValue("@DeviveTypeDisplayName", parameterList.Rows[i]["DeviceTypeDisplayName"].ToString());                           

cmd.Parameters.AddWithValue("@InterfaceName", parameterList.Rows[i]["InterfaceName"].ToString());                            

cmd.Parameters.AddWithValue("@PortName", parameterList.Rows[i]["PortName"].ToString());                            

cmd.Parameters.AddWithValue("@ParameterKey", parameterList.Rows[i]["ParameterKey"].ToString());                            

cmd.Parameters.AddWithValue("@ParameterValue", parameterList.Rows[i]["ParameterValue"].ToString());                            

cmd.ExecuteNonQuery();                        

}                    

}                    

//设备列表                    

if (equipmentList.Rows.Count > 0)                    

{                        

for (int i = 0; i < equipmentList.Rows.Count; i++)                        

{                            

if (langType == "CN")                            

{                                

cmd = new OleDbCommand("INSERT INTO [设备列表$]([实验室名],[实验设备名],[设备ID],[IP],[设备位置])"                               

+ " VALUES(@ElabName,@DisplayName,@DeviceName,@IP,@Location)", conn);                            

}                           

  else                            

{                                

cmd = new OleDbCommand("INSERT INTO [DeviceList$]([ElabName],[DisplayName],[DeviceNameID],[IP],[Location])"                                

+ " VALUES(@ElabName,@DisplayName,@DeviceName,@IP,@Location)", conn);                            

}                            

cmd.Parameters.AddWithValue("@ElabName", equipmentList.Rows[i]["ElabName"].ToString());                            

cmd.Parameters.AddWithValue("@DisplayName", equipmentList.Rows[i]["DisplayName"].ToString());                            

cmd.Parameters.AddWithValue("@DeviceName", equipmentList.Rows[i]["DeviceName"].ToString());                            

cmd.Parameters.AddWithValue("@IP", equipmentList.Rows[i]["IP"].ToString());                            

cmd.Parameters.AddWithValue("@Location", equipmentList.Rows[i]["Location"].ToString());                           

cmd.ExecuteNonQuery();                        

}                    

}                    

//连线列表                    

if (lineList.Rows.Count > 0)                    

{                        

for (int i = 0; i < lineList.Rows.Count; i++)                        

{

       if (langType == "CN")                            

{                                

cmd = new OleDbCommand("INSERT INTO [连线列表$]([源端口],[目标端口],[类型])"                               

+ " VALUES(@Srcs, @Targets, @Types)", conn);                            

}                            

else                            

{                                

cmd = new OleDbCommand("INSERT INTO [LineList$]([SourcePort],[TargetPort],[Type])"                               

+ " VALUES(@Srcs, @Targets, @Types)", conn);                            

}                            

cmd.Parameters.AddWithValue("@Srcs", lineList.Rows[i]["Srcs"].ToString());                            

cmd.Parameters.AddWithValue("@Targets", lineList.Rows[i]["Targets"].ToString());                            

cmd.Parameters.AddWithValue("@Types", lineList.Rows[i]["Types"].ToString());                            

cmd.ExecuteNonQuery();                        

}                    

}

               

}           

  }           

  catch (Exception ex)           

  {                

LogHelper.Error("DataWriteExcelTemplate.OperateCourseExcelTemplate",                       

string.Format(msg_Error, filePath, ex.Message));               

  return null;            

}

            return filePath;        

}

中文execl模板:

英文execl模板:

导入成功后的效果:

 

posted on 2013-08-27 18:23  慢阳阳  阅读(247)  评论(0编辑  收藏  举报