数据导出到Excel(或Word)源代码大全

数据导出到Excel(或Word)源代码大全

在日常工作中,大家都习惯Office作为办公软件,因此,在开发软件的时,常常会有把数据导出到Excel等Office软件的需求。在此,收集一些常用的导出文件的源程序,希望给大家带来方便。(不断更新)

一、DataSet数据集内数据转化为Excel

// 作用:把DataSet数据集内数据转化为Excel、Word文件 
// 描述:这些关于Excel、Word的导出方法,基本可以实现日常须要,其中有些方法可以把数据导出后 
//       生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习参考用之。    
// 备注:请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性。 
public void DataSetToExcel(DataSet ds,string FileName) 
{ 
   try 
   { 
      //Web页面定义 
      //System.Web.UI.Page mypage=new System.Web.UI.Page(); 

      HttpResponse resp; 
      resp=HttpContext.Current.Response; 
      resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); 
      resp.AppendHeader("Content-disposition","attachment;filename="+FileName+".xls"); 
      resp.ContentType="application/ms-excel"; 

      //变量定义 
      string colHeaders=null; 
      string Is_item=null; 

      //显示格式定义 


      //文件流操作定义 
      //FileStream fs=new FileStream(FileName,FileMode.Create,FileAccess.Write); 
      //StreamWriter sw=new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312")); 

      StringWriter sfw=new StringWriter(); 
      //定义表对象与行对象,同时用DataSet对其值进行初始化 
      System.Data.DataTable dt=ds.Tables[0]; 
      DataRow[] myRow=dt.Select(); 
      int i=0; 
      int cl=dt.Columns.Count; 

      //取得数据表各列标题,各标题之间以/t分割,最后一个列标题后加回车符 
      for(i=0;i<cl;i++) 
      { 
         //if(i==(cl-1))  //最后一列,加/n 
         // colHeaders+=dt.Columns[i].Caption.ToString(); 
         //else 
         colHeaders+=dt.Columns[i].Caption.ToString()+"/t"; 
      } 
      sfw.WriteLine(colHeaders); 
      //sw.WriteLine(colHeaders); 

      //逐行处理数据 
      foreach(DataRow row in myRow) 
      { 
         //当前数据写入 
         for(i=0;i<cl;i++) 
         { 
          //if(i==(cl-1)) 
          //   Is_item+=row[i].ToString()+"/n"; 
          //else 
          Is_item+=row[i].ToString()+"/t"; 
         } 
         sfw.WriteLine(Is_item); 
         //sw.WriteLine(Is_item); 
         Is_item=null; 
      } 
      resp.Write(sfw); 
      //resp.Clear(); 
      resp.End(); 
   } 
   catch(Exception e) 
   { 
      throw e; 
   } 
}

二、DataSet数据集内数据转化为Excel文件(2)

/// ExportFiles 的摘要说明。 
/// 作用:把DataSet数据集内数据转化为Excel文件 
/// 描述:导出Excel文件    
/// 备注:请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性。 
/// </summary> 
public class ExportFiles 
{ 
    private string filePath = ""; 
    public ExportFiles(string excel_path) 
    { 
        // 
        // TODO: 在此处添加构造函数逻辑 
        // 
        filePath = excel_path; 
    } 
    /// <summary> 
    /// 将指定的Dataset导出到Excel文件 
    /// </summary> 
    /// <param name="dt"></param> 
    /// <returns></returns> 
    public bool ExportToExcel(System.Data.DataSet ds, string ReportName) 
    { 
        if (ds.Tables[0].Rows.Count == 0) 
        { 
            MessageBox.Show("数据集为空"); 
        } 
        Microsoft.Office.Interop.Excel._Application xlapp = new ApplicationClass(); 
        Workbook xlbook = xlapp.Workbooks.Add(true); 
        Worksheet xlsheet = (Worksheet)xlbook.Worksheets[1]; 
        Range range = xlsheet.get_Range(xlapp.Cells[1, 1], xlapp.Cells[1, ds.Tables[0].Columns.Count]); 
        range.MergeCells = true; 
        xlapp.ActiveCell.FormulaR1C1 = ReportName; 
        xlapp.ActiveCell.Font.Size = 20; 
        xlapp.ActiveCell.Font.Bold = true; 
        xlapp.ActiveCell.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter; 
        int colIndex = 0; 
        int RowIndex = 2; 
        //开始写入每列的标题 
        foreach (DataColumn dc in ds.Tables[0].Columns) 
        { 
            colIndex++; 
            xlsheet.Cells[RowIndex, colIndex] = dc.Caption; 
        } 
        //开始写入内容 
        int RowCount = ds.Tables[0].Rows.Count;//行数 
        for (int i = 0; i < RowCount; i++) 
        { 
            RowIndex++; 
            int ColCount = ds.Tables[0].Columns.Count;//列数 
            for (colIndex = 1; colIndex <= ColCount; colIndex++) 
            { 
                xlsheet.Cells[RowIndex, colIndex] = ds.Tables[0].Rows[i][colIndex - 1];//dg[i, colIndex - 1]; 
                xlsheet.Cells.ColumnWidth = ds.Tables[0].Rows[i][colIndex - 1].ToString().Length; 
            } 
        } 

        xlbook.Saved = true; 
        xlbook.SaveCopyAs(filePath); 
        xlapp.Quit(); 
        GC.Collect(); 
        return true; 
    } 

    public bool ExportToExcelOF(System.Data.DataSet ds, string ReportName) 
    { 
        if (ds.Tables[0].Rows.Count == 0) 
        { 
            MessageBox.Show("数据集为空"); 
        } 
        string FileName = filePath; 

        //System.Data.DataTable dt = new System.Data.DataTable(); 
        FileStream objFileStream; 
        StreamWriter objStreamWriter; 
        string strLine = ""; 
        objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write); 
        objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode); 

        strLine = ReportName; 
        objStreamWriter.WriteLine(strLine); 
        strLine = ""; 

        for (int i = 0; i < ds.Tables[0].Columns.Count; i++) 
        { 
            strLine = strLine + ds.Tables[0].Columns[i].ColumnName.ToString() + "          " + Convert.ToChar(9); 
        } 
        objStreamWriter.WriteLine(strLine); 
        strLine = ""; 

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
        { 
            strLine = strLine + (i + 1) + Convert.ToChar(9); 
            for (int j = 1; j < ds.Tables[0].Columns.Count; j++) 
            { 
                strLine = strLine + ds.Tables[0].Rows[i][j].ToString() + Convert.ToChar(9); 
            } 
            objStreamWriter.WriteLine(strLine); 
            strLine = ""; 
        } 
        objStreamWriter.Close(); 
        objFileStream.Close(); 

        //Microsoft.Office.Interop.Excel._Application xlapp = new ApplicationClass(); 
        //Workbook xlbook = xlapp.Workbooks.Add(true); 
        //Worksheet xlsheet = (Worksheet)xlbook.Worksheets[1]; 
        //Range range = xlsheet.get_Range(xlapp.Cells[1, 1], xlapp.Cells[1, ds.Tables[0].Columns.Count]); 
        //range.EntireColumn.AutoFit(); 
        //xlapp.Quit(); 
        return true; 
    }      
}


 

三、生成XML然后转换成Excel方式

参考资源:http://www.codeproject.com/office/Excel_Export.asp?df=100&forumid=329437&fr=51 (源程序)
优点:
a. 服务端不用安装Excel程序。
b. 支持一定的Excel文件格式设置,比如字体大小、颜色、合并单元格等。
缺点:
a. 与Excel 2000不兼容:由于Excel 2000不支持XML,所以以这种方法生成的Excel文件可能在Excel2000中不兼容(毕竟目前还有不少用户的电脑装的是Excel 2000)。
b. 可能不支持Excel文件页边距的设置;不支持Excel文件横向、纵向的设置;不支持Excel模板;
c. 编程工作量比较大;
d. 生成的文件本质上是XML文件,需要“另存为xls”才能变成真正的Excel文件。
e. 性能是好是坏还不清楚,目前还没真正在项目中用过。希望有用过此方案的朋友能介绍一下这个方案的性能。

四、导出GridView到Excel

//导出GridView到Excel中的关键之处 
//用法: ToExcel(GVStaff, TextBox1.Text); 

public static void ToExcel(System.Web.UI.Control ctl,string FileName) 
{ 
    HttpContext.Current.Response.Charset ="UTF-8"; 
    HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default; 
    HttpContext.Current.Response.ContentType ="application/ms-excel"; 
    HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+""+FileName+".xls"); 
    ctl.Page.EnableViewState =false; 
    System.IO.StringWriter  tw = new System.IO.StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(tw); 
    ctl.RenderControl(hw); 
    HttpContext.Current.Response.Write(tw.ToString()); 
    HttpContext.Current.Response.End(); 
}         
      
必须有下面这句!否则不会通过! 
public override void VerifyRenderingInServerForm(Control control) 
{ 
    // Confirms that an HtmlForm control is rendered for 
}


 

五、DataTable导出到Excel

using System; 
using Microsoft.Office.Interop.Excel; 
using System.Windows.Forms; 
namespace DongVI 
{ 
 /// <summary> 
 /// DataTable导出到Excel 
 /// 整理:dongVi 
 /// </summary> 
 public class DataTableToExcel 
 { 
  private DataTableToExcel() 
  { 

  } 
  /// <summary> 
  /// 导出Excel 
  /// </summary> 
  /// <param name="dt">要导出的DataTable</param> 
  public static void ExportToExcel(System.Data.DataTable dt ) 
  { 
   if (dt == null) return; 
    
   Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 
   if (xlApp == null) 
   { 
    // lblMsg.Text = "无法创建Excel对象,可能您的电脑未安装Excel"; 
    MessageBox.Show( "无法创建Excel对象,可能您的电脑未安装Excel" ); 
    return; 
   } 
   System.Windows.Forms.SaveFileDialog saveDia = new SaveFileDialog(); 
   saveDia.Filter = "Excel|*.xls"; 
   saveDia.Title = "导出为Excel文件"; 
   if(saveDia.ShowDialog()== System.Windows.Forms.DialogResult.OK 
    && !string.Empty.Equals(saveDia.FileName)) 
   { 
    Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; 
    Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); 
    Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1 
    Microsoft.Office.Interop.Excel.Range range = null; 
    long totalCount = dt.Rows.Count; 
    long rowRead = 0; 
    float percent = 0; 
    string fileName = saveDia.FileName; 
    //写入标题 
    for (int i = 0; i < dt.Columns.Count; i++) 
    { 
     worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName; 
     range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1]; 
     //range.Interior.ColorIndex = 15;//背景颜色 
     range.Font.Bold = true;//粗体 
     range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;//居中 
     //加边框 
     range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); 
     //range.ColumnWidth = 4.63;//设置列宽 
     //range.EntireColumn.AutoFit();//自动调整列宽 
     //r1.EntireRow.AutoFit();//自动调整行高 
    } 
    //写入内容 
    for (int r = 0; r < dt.DefaultView.Count; r++) 
    { 
     for (int i = 0; i < dt.Columns.Count; i++) 
     { 
      worksheet.Cells[r + 2, i + 1] = dt.DefaultView[r][i]; 
      range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1]; 
      range.Font.Size = 9;//字体大小 
      //加边框 
      range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null); 
      range.EntireColumn.AutoFit();//自动调整列宽 
     } 
     rowRead++; 
     percent = ((float)(100 * rowRead)) / totalCount; 
     System.Windows.Forms.Application.DoEvents(); 
    } 
    range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizontal].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; 
    if (dt.Columns.Count > 1) 
    { 
     range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin; 
    } 
    try 
    { 
     workbook.Saved = true; 
     workbook.SaveCopyAs(fileName); 
    } 
    catch (Exception ex) 
    { 
     //lblMsg.Text = "导出文件时出错,文件可能正被打开!/n" + ex.Message; 
     MessageBox.Show( "导出文件时出错,文件可能正被打开!/n" + ex.Message ); 
     return; 
    } 

    workbooks.Close(); 
    if (xlApp != null) 
    { 
     xlApp.Workbooks.Close(); 
     xlApp.Quit(); 
     int generation = System.GC.GetGeneration(xlApp); 
     System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp); 
     xlApp = null; 
     System.GC.Collect(generation); 
    } 
    GC.Collect();//强行销毁 
    #region 强行杀死最近打开的Excel进程 
    System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL"); 
    System.DateTime startTime = new DateTime(); 
    int m, killId = 0; 
    for (m = 0; m < excelProc.Length; m++) 
    { 
     if (startTime < excelProc[m].StartTime) 
     { 
      startTime = excelProc[m].StartTime; 
      killId = m; 
     } 
    } 
    if (excelProc[killId].HasExited == false) 
    { 
     excelProc[killId].Kill(); 
    } 
    #endregion 
    MessageBox.Show( "导出成功!" ); 
   } 
  } 
 } 
}


 

六、DataTable导出到excel(2)

StringWriter stringWriter = new StringWriter(); 
HtmlTextWriter htmlWriter = new HtmlTextWriter( stringWriter ); 
DataGrid excel = new DataGrid(); 
System.Web.UI.WebControls.TableItemStyle AlternatingStyle = new TableItemStyle(); 
System.Web.UI.WebControls.TableItemStyle headerStyle = new TableItemStyle(); 
System.Web.UI.WebControls.TableItemStyle itemStyle = new TableItemStyle(); 
AlternatingStyle.BackColor = System.Drawing.Color.LightGray; 
headerStyle.BackColor =System.Drawing.Color.LightGray; 
headerStyle.Font.Bold = true; 
headerStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center; 
itemStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;;  

excel.AlternatingItemStyle.MergeWith(AlternatingStyle); 
excel.HeaderStyle.MergeWith(headerStyle); 
excel.ItemStyle.MergeWith(itemStyle);  
excel.GridLines = GridLines.Both; 
excel.HeaderStyle.Font.Bold = true; 
excel.DataSource = dt.DefaultView;//输出DataTable的内容 
excel.DataBind(); 
excel.RenderControl(htmlWriter); 
   
string filestr = "d://data//"+filePath;  //filePath是文件的路径 
int pos = filestr.LastIndexOf( "//"); 
string file = filestr.Substring(0,pos); 
if( !Directory.Exists( file ) ) 
{ 
  Directory.CreateDirectory(file); 
} 
System.IO.StreamWriter sw = new StreamWriter(filestr); 
sw.Write(stringWriter.ToString()); 
sw.Close();


 

七、通过SQL直接导出到Excel数据库

exec master..xp_cmdshell @# bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout c:/test.xls -c -S"soa" -U"sa" -P"sa" @#


注意:参数的大小写,另外这种方法写入数据的时候没有标题。

    关于通过SQL读取EXCEL的方法请参见:http://blog.csdn.net/wonsoft/archive/2008/11/16/3312320.aspx

八、用OleDB 把 DataSet 数据导出到 Excel文件里

//dt为数据源(数据表)  
//ExcelFileName 为要导出的Excle文件 
//ModelFile为模板文件,该文件与数据源中的表一致。否则数据会导出失败。 
//ModelFile文件里,需要有一张 与 dt.TableName 一致的表,而且字段也要一致。 
//注明:如果不用ModelFile的话,可以用一个空白Excel文件,不过,要去掉下面创建表的注释,让OleDb自己创建一个空白表。 
public static string TableToExcelFile(DataTable dt,string ExcelFileName,string ModelFile) 
{ 
    File.Copy(ModelFile,ExcelFileName);  //复制一个空文件,提供写入数据用 
     
    if(File.Exists(ExcelFileName)==false) 
    { 
        return "系统创建临时文件失败,请与系统管理员联系!"; 
    } 

    if(dt == null) 
    { 
        return "DataTable不能为空"; 
    } 

    int rows = dt.Rows.Count; 

    int cols = dt.Columns.Count; 
    StringBuilder sb; 
    string connString; 

    if(rows == 0) 
    { 
        return "没有数据"; 
    } 

    sb = new StringBuilder();     
    connString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExcelFileName+";Extended Properties=Excel 8.0;";     
     
    //生成创建表的脚本 
    //----sb.Append("DROP TABLE "+dt.TableName); 
     
    /* 
    sb.Append("CREATE TABLE "); 
    sb.Append(dt.TableName + " ( "); 
    for(int i=0;i<cols;i++) 
    { 
        if(i < cols - 1) 
        sb.Append(string.Format("{0} varchar,",dt.Columns[i].ColumnName)); 
        else 
        sb.Append(string.Format("{0} varchar)",dt.Columns[i].ColumnName)); 
    }     
    */ 
     
    //return sb.ToString(); 

    OleDbConnection objConn = new OleDbConnection(connString); 
    OleDbCommand objCmd = new OleDbCommand(); 
    objCmd.Connection = objConn; 
    //objCmd.CommandText=sb.ToString(); 

    try 
    { 
        objConn.Open(); 
        //objCmd.ExecuteNonQuery(); 
    } 
    catch(Exception e) 
    { 
        return "在Excel中创建表失败,错误信息:" + e.Message; 
    } 

    sb.Remove(0,sb.Length); 

    sb.Append("INSERT INTO "); 
    sb.Append(dt.TableName + " ( "); 

    for(int i=0;i<cols;i++) 
    { 
        if(i < cols - 1) 
            sb.Append(dt.Columns[i].ColumnName + ","); 
        else 
            sb.Append(dt.Columns[i].ColumnName + ") values ("); 
    } 

    for(int i=0;i<cols;i++) 
    { 
        if(i < cols - 1) 
            sb.Append("@" + dt.Columns[i].ColumnName + ","); 
        else 
            sb.Append("@" + dt.Columns[i].ColumnName + ")"); 
    } 

    //建立插入动作的Command 
    objCmd.CommandText = sb.ToString(); 
    OleDbParameterCollection param = objCmd.Parameters; 

    for(int i=0;i<cols;i++) 
    { 
        param.Add(new OleDbParameter("@" + dt.Columns[i].ColumnName, OleDbType.VarChar)); 
    } 

    //遍历DataTable将数据插入新建的Excel文件中 
    foreach (DataRow row in dt.Rows) 
    {    
        for (int i=0; i<param.Count; i++) 
        { 
            param[i].Value = row[i]; 
        } 

        objCmd.ExecuteNonQuery(); 
    } 

    return "数据已成功导入Excel"; 
}  
//   Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=754176


 

九、利用OLEDB,以excel为数据库,把dataset中的数据导入到excel文件中

public static void exportToExcelByDataset(string filePath, DataSet ds,XmlNode node) 
{ 
    string sqlstr;  

    if(fi.Exists) 
    { 
         fi.Delete(); 
         //throw new Exception("文件删除失败");     
    } 
    else 
    { 
         fi.Create(); 
    } 
    
    string mailto:sqlcon=@%22Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended ProPerties=Excel 8.0;"; 
    OleDbConnection olecon = new OleDbConnection(sqlcon); 
    OleDbCommand olecmd = new OleDbCommand(); 
    olecmd.Connection = olecon; 
    olecmd.CommandType = CommandType.Text; 

    try 
    { 
        olecon.Open(); 
             
        XmlNode nodec=node.SelectSingleNode("./Method/ShowField"); 
        int ii = 0; 
        sqlstr = "CREATE TABLE sheet1("; 
        foreach(XmlNode xnode in nodec.ChildNodes ) 
        { 
           if(ii == nodec.ChildNodes.Count - 1) 
           { 
               if(xnode.Attributes["type"].Value.ToLower() == "int"||xnode.Attributes["type"].Value.ToLower() == "decimal") 
               { 
                   sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " number)";        
               } 
               else 
               { 
                   sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " text)"; 
               } 
               // sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " text)"; 
           } 
           else 
           { 
               if(xnode.Attributes["type"].Value.ToLower() == "int"||xnode.Attributes["type"].Value.ToLower() == "decimal") 
               { 
                    sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " number,";        
               } 
               else 
               { 
                    sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " text,"; 
               } 
           } 
           //  sqlstr =sqlstr + xnode.Attributes["displayname"].Value + " text";        
           ii++; 
       } 
       olecmd.CommandText = sqlstr; 
       olecmd.ExecuteNonQuery(); 
       for(int i=0;i<ds.Tables[0].Rows.Count;i++) 
       { 
           sqlstr = "INSERT INTO sheet1 VALUES("; 
           int jj=0; 
           foreach(XmlNode inode in nodec.ChildNodes ) 
           { 
                if(jj == nodec.ChildNodes.Count-1) 
                { 
                    if(inode.Attributes["type"].Value.ToLower() == "int"||inode.Attributes["type"].Value.ToLower() == "decimal") 
                    { 
                         sqlstr = sqlstr + isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString()) + ")" ;   
                    } 
                    else 
                    { 
                         sqlstr = sqlstr + "'" + isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString().Replace("'","''")) + "')" ; 
                    } 
                } 
                else 
                { 
                    if(inode.Attributes["type"].Value.ToLower() == "int"||inode.Attributes["type"].Value.ToLower() == "decimal") 
                    { 
                         sqlstr = sqlstr + isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString()) + "," ; 
                    } 
                    else 
                    { 
                         sqlstr = sqlstr + "'" + isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString().Replace("'","''")) + "'," ; 
                    } 
                } 
                jj++; 
           } 
           olecmd.CommandText = sqlstr; 
           olecmd.ExecuteNonQuery(); 
        }   
        MessageBox.Show(@"Excel文件:" + filePath + " 导出成功!"); 
    } 
    catch(Exception ex) 
    { 
        MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
        olecmd.Dispose(); 
        olecon.Close(); 
        olecon.Dispose(); 
    } 
} 

// 判断对象为空 
private static string isnull(string obj) 
{ 
    if(obj.Length >0) 
    { 
     return obj; 
    } 
    else 
    { 
     return "null"; 
    }  
}


转载地址:http://blog.csdn.net/wonsoft/article/details/3311769

已标记关键词 清除标记
课程简介: 历经半个多月的时间,Debug亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。 其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,Debug还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程! 核心技术栈列表: 值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括Spring Boot、Spring MVC、Mybatis、Mybatis-Plus、Shiro(身份认证与资源授权跟会话等等)、Spring AOP、防止XSS攻击、防止SQL注入攻击、过滤器Filter、验证码Kaptcha、热部署插件Devtools、POI、Vue、LayUI、ElementUI、JQuery、HTML、Bootstrap、Freemarker、一键打包部署运行工具Wagon等等,如下图所示: 课程内容与收益: 总的来说,本课程是一门具有很强实践性质的“项目实战”课程,即“企业应用员工角色权限管理平台”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于Shiro的资源授权实现员工-角色-操作权限、员工-角色-数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图: 以下为项目整体的运行效果截图: 值得一提的是,在本课程中,Debug也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页