Asp.net Excel导入或导出

导入

代码
/**filePath: Excel路径   sheetname:Excel底部的工作表 默认是Sheet1  每个工作表 当做一个表*/  
public void ExcelDataSource(string filepath, string sheetname)
    {
        
//HDR=YES 把第一行作为列名  Excel 类似当做一个数据库一般
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";
        OleDbConnection conn 
= new OleDbConnection(strConn);
        conn.Open();
        
int count = 1;
        OleDbCommand omd 
= conn.CreateCommand();
        omd.CommandText 
= "select * from [" + sheetname + "$]";
        omd.CommandType 
= CommandType.Text;
//操作此odr就行 或填充也行
        OleDbDataReader odr = omd.ExecuteReader();
   
/**后面代码 略**/    
}

导出

代码
 
/**fileName:要导出的Excel文件名(自定义)  ds:导出的内容**/
 
public static void ExportDsToXls(Page page, string fileName, DataSet ds)
    {
        page.Response.Clear();
        page.Response.Buffer 
= true;
        page.Response.Charset 
= "UTF-8";
        page.Response.AppendHeader(
"Content-Disposition""attachment;filename=" + fileName + System.DateTime.Now.ToString("_yyMMdd_hhmm"+ ".xls");
        page.Response.ContentEncoding 
= System.Text.Encoding.GetEncoding("UTF-8");//设置输出流为简体中文
        page.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
        page.EnableViewState = false;
        page.Response.Write(ExportTable(ds));
        page.Response.End();
    }

/**Excel导出 可以当做HTML 来处理**/
  
public static string ExportTable(DataSet ds)
    {
        StringBuilder data 
=new StringBuilder();
        
//data = ds.DataSetName + "\n";
       
//防止出现中文乱码
      data.Append("<html><head><meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">");
        
foreach (DataTable tb in ds.Tables)
        {
            data.Append(
"<table cellpadding='1' style='border-collapse:collapse;'>");
            
//写出列名
             data.Append("<tr>");
            
foreach (DataColumn column in tb.Columns)
            {
                data.Append(
"<td style='border:solid 1px black;text-align:center'><b>" + column.ColumnName + "</b></td>");
            }
          data.Append( 
"</tr>");

            
//写出数据
            foreach (DataRow row in tb.Rows)
            {
                data.Append( 
"<tr>");
                
foreach (DataColumn column in tb.Columns)
                {

                      
//列出 所有的列值  以下代码按照自身需求而定
                    if (column.ColumnName == "No.")
                        data.Append(
"<td style='border:solid 1px #cccccc;text-align:center'>" + row[column].ToString() + "#</td>");
                    
else
                        data.Append(
"<td style='border:solid 1px #cccccc;text-align:center'>" + row[column].ToString() + "</td>");
                }
                 data.Append( 
"</tr>");
            }
            data.Append( 
"</table>");
        }
        data.Append(
"</body></html>");

        
return data.ToString();
    }
原文地址:https://www.cnblogs.com/zhangqifeng/p/1909553.html