导出导入Excel(DataSet,DataGrid)

public   class  ExportExcel
导出导入Excel(DataSet,DataGrid)
{
导出导入Excel(DataSet,DataGrid)    
public
 ExportExcel()
导出导入Excel(DataSet,DataGrid)    
{
导出导入Excel(DataSet,DataGrid)            
导出导入Excel(DataSet,DataGrid)    }

导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)    
private static void GetXslFile(DataSet ds,string xslPath)
导出导入Excel(DataSet,DataGrid)    
{
导出导入Excel(DataSet,DataGrid)        
string strColumn = ""
;
导出导入Excel(DataSet,DataGrid)        
string strRow    = ""
;
导出导入Excel(DataSet,DataGrid)        
string dsName    =
 ds.DataSetName;
导出导入Excel(DataSet,DataGrid)        
string tableName = ds.Tables[0
].TableName;
导出导入Excel(DataSet,DataGrid)        
string header    = dsName + "/" +
 tableName;
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)        
foreach(DataColumn clm in ds.Tables[0
].Columns)
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            
//
特殊字符 <,>,",*,%,(,),& 替换
导出导入Excel(DataSet,DataGrid)            
//
*************************************************
导出导入Excel(DataSet,DataGrid)            
//
*************************************************
导出导入Excel(DataSet,DataGrid)            
//
 符号         xml下的值      excel中的值
导出导入Excel(DataSet,DataGrid)            
//
  < --------  _x003C_  ------ &lt;
导出导入Excel(DataSet,DataGrid)            
//
  > -------- _x003E_  ------ &gt;
导出导入Excel(DataSet,DataGrid)            
//
  " --------  _x0022_  ------ &quot;
导出导入Excel(DataSet,DataGrid)            
//
  * --------  _x002A_  ------ *
导出导入Excel(DataSet,DataGrid)            
//
  % --------  _x0025_  ------ %
导出导入Excel(DataSet,DataGrid)            
//
  & --------  _x0026_  ------ &amp;
导出导入Excel(DataSet,DataGrid)            
//
  ( --------  _x0028_  ------ (
导出导入Excel(DataSet,DataGrid)            
//
  ) --------  _x0029_  ------ )
导出导入Excel(DataSet,DataGrid)            
//
  = --------  _x003D_  ------ = 
导出导入Excel(DataSet,DataGrid)            
//
*************************************************
导出导入Excel(DataSet,DataGrid)            
//*************************************************

导出导入Excel(DataSet,DataGrid)

导出导入Excel(DataSet,DataGrid)            
string strClmName = clm.ColumnName;
导出导入Excel(DataSet,DataGrid)            
string strRowName =
 clm.ColumnName;
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)            
if(strClmName.IndexOf("&")!=-1
)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strClmName 
= strClmName.Replace("&","&amp;"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strClmName.IndexOf("<")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strClmName 
= strClmName.Replace("<","&lt;"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strClmName.IndexOf(">")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strClmName
=strClmName.Replace(">","&gt;"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strClmName.IndexOf("\"")!=-1)
导出导入Excel(DataSet,DataGrid)
            {
导出导入Excel(DataSet,DataGrid)                strClmName
=strClmName.Replace("\"","&quot;");

导出导入Excel(DataSet,DataGrid)
            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("<")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("<","_x003C_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf(">")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace(">","_x003E_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("\"")!=-1)
导出导入Excel(DataSet,DataGrid)
            {
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("\"","_x0022_");

导出导入Excel(DataSet,DataGrid)
            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("*")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("*","_x002A_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("%")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("%","_x0025_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("&")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("&","_x0026_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("(")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("(","_x0028_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf(")")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace(")","_x0029_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)            
if(strRowName.IndexOf("=")!=-1)
导出导入Excel(DataSet,DataGrid)            
{
导出导入Excel(DataSet,DataGrid)                strRowName
=strRowName.Replace("=","_x003D_"
);
导出导入Excel(DataSet,DataGrid)            }

导出导入Excel(DataSet,DataGrid)                
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)            strColumn 
+= "<th>" + strClmName +"</th>" + "\r\n"
导出导入Excel(DataSet,DataGrid)            strRow 
+= "<td>" + "<xsl:value-of select=" + "\"" + strRowName + "\"" +"/>" + "</td>" + "\r\n"
;
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)        
string str = @"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
导出导入Excel(DataSet,DataGrid)            <xsl:template match=""/"">
导出导入Excel(DataSet,DataGrid)            <html xmlns:o=""urn:schemas-microsoft-com:office:office"" xmlns:x=""urn:schemas-microsoft-com:office:excel"" xmlns=""http://www.w3.org/TR/REC-html40""> 
导出导入Excel(DataSet,DataGrid)            <head> 
导出导入Excel(DataSet,DataGrid)            <meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8"" /> 
导出导入Excel(DataSet,DataGrid)            <style> 
导出导入Excel(DataSet,DataGrid)            .xl24{mso-style-parent:style0;mso-number-format:""\@"";text-align:right;} 
导出导入Excel(DataSet,DataGrid)            </style> 
导出导入Excel(DataSet,DataGrid)            <xml> 
导出导入Excel(DataSet,DataGrid)            <x:ExcelWorkbook> 
导出导入Excel(DataSet,DataGrid)            <x:ExcelWorksheets> 
导出导入Excel(DataSet,DataGrid)            <x:ExcelWorksheet> 
导出导入Excel(DataSet,DataGrid)            <x:Name>Sheet1</x:Name> 
导出导入Excel(DataSet,DataGrid)            <x:WorksheetOptions> 
导出导入Excel(DataSet,DataGrid)                    <x:ProtectContents>False</x:ProtectContents> 
导出导入Excel(DataSet,DataGrid)                    <x:ProtectObjects>False</x:ProtectObjects> 
导出导入Excel(DataSet,DataGrid)                    <x:ProtectScenarios>False</x:ProtectScenarios> 
导出导入Excel(DataSet,DataGrid)            </x:WorksheetOptions> 
导出导入Excel(DataSet,DataGrid)            </x:ExcelWorksheet> 
导出导入Excel(DataSet,DataGrid)            </x:ExcelWorksheets> 
导出导入Excel(DataSet,DataGrid)            </x:ExcelWorkbook> 
导出导入Excel(DataSet,DataGrid)            </xml> 
导出导入Excel(DataSet,DataGrid)            </head>  
导出导入Excel(DataSet,DataGrid)            <body> 
"
;
导出导入Excel(DataSet,DataGrid)        str 
+= "\r\n" + @"<table border=""1"" cellpadding=""0"" cellspacing=""0""><tr>" + "\r\n"
;
导出导入Excel(DataSet,DataGrid)        str 
+=
 strColumn;
导出导入Excel(DataSet,DataGrid)        str 
+= @" </tr><xsl:for-each select="""+header+@"""><tr>"
;
导出导入Excel(DataSet,DataGrid)        str 
+= "\r\n" +
 strRow;
导出导入Excel(DataSet,DataGrid)        str 
+= @"</tr></xsl:for-each></table></body></html></xsl:template></xsl:stylesheet> "
;
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)        
string path =
xslPath;
导出导入Excel(DataSet,DataGrid)        
if
(File.Exists(path))
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            File.Delete(path);
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)        FileStream fs 
= File.Create(path);
导出导入Excel(DataSet,DataGrid)        StreamWriter sw
=new
 StreamWriter(fs);
导出导入Excel(DataSet,DataGrid)        sw.Write(str);
导出导入Excel(DataSet,DataGrid)        sw.Close();
导出导入Excel(DataSet,DataGrid)        fs.Close();
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)    }

导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)    
private static void GetXmlFile(DataSet ds,string xmlFilePath)
导出导入Excel(DataSet,DataGrid)    
{
导出导入Excel(DataSet,DataGrid)        
string strXml =
 ds.GetXml();
导出导入Excel(DataSet,DataGrid)        
if
(File.Exists(xmlFilePath))
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            File.Delete(xmlFilePath);
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)        FileStream fs1 
= File.Create(xmlFilePath);
导出导入Excel(DataSet,DataGrid)        StreamWriter writer 
= new
 StreamWriter(fs1);
导出导入Excel(DataSet,DataGrid)        writer.Write(strXml);
导出导入Excel(DataSet,DataGrid)        writer.Close();
导出导入Excel(DataSet,DataGrid)        fs1.Close();
导出导入Excel(DataSet,DataGrid)    }

导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)    
private static void BuildExcel(DataSet ds,string path)
导出导入Excel(DataSet,DataGrid)    
{
导出导入Excel(DataSet,DataGrid)        
if
(File.Exists(path))
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            File.Delete(path);
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)        
string m_path    = path.Substring(0,path.Length-4);
导出导入Excel(DataSet,DataGrid)        
string m_fileXml = m_path + ".xml"
;
导出导入Excel(DataSet,DataGrid)        
string m_fileXsl = m_path + ".xsl"
;
导出导入Excel(DataSet,DataGrid)        
string m_fileXls = m_path + ".xls"
;
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)        
try

导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            GetXmlFile(ds,m_fileXml);
导出导入Excel(DataSet,DataGrid)            GetXslFile(ds,m_fileXsl);
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)            
//Excel changed

导出导入Excel(DataSet,DataGrid)
            XmlDocument doc = new XmlDocument();
导出导入Excel(DataSet,DataGrid)            doc.Load(m_fileXml);
导出导入Excel(DataSet,DataGrid)            XslTransform xslt 
= new
 XslTransform();
导出导入Excel(DataSet,DataGrid)            xslt.Load(m_fileXsl);
导出导入Excel(DataSet,DataGrid)            XmlElement root 
=
 doc.DocumentElement;
导出导入Excel(DataSet,DataGrid)            XPathNavigator nav 
=
 root.CreateNavigator();
导出导入Excel(DataSet,DataGrid)            XmlTextWriter writer 
= new XmlTextWriter(m_fileXls,null
);
导出导入Excel(DataSet,DataGrid)            xslt.Transform(nav,
null,writer,null
);
导出导入Excel(DataSet,DataGrid)            writer.Close();
导出导入Excel(DataSet,DataGrid)            File.Delete(m_fileXml);
导出导入Excel(DataSet,DataGrid)            File.Delete(m_fileXsl);
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)        
catch
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            
throw
;
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)    }

导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)    
public static void ToExcel(System.Web.UI.Control ctl,string FileName)
导出导入Excel(DataSet,DataGrid)    
{
导出导入Excel(DataSet,DataGrid)        HttpContext.Current.Response.Charset 
="UTF-8"
;
导出导入Excel(DataSet,DataGrid)        HttpContext.Current.Response.ContentEncoding 
=
System.Text.Encoding.Default;
导出导入Excel(DataSet,DataGrid)        HttpContext.Current.Response.ContentType 
="application/ms-excel"
;
导出导入Excel(DataSet,DataGrid)        HttpContext.Current.Response.AppendHeader(
"Content-Disposition","attachment;filename="+""+FileName+".xls"
);
导出导入Excel(DataSet,DataGrid)        ctl.Page.EnableViewState 
=false
;
导出导入Excel(DataSet,DataGrid)        System.IO.StringWriter  tw 
= new
 System.IO.StringWriter();
导出导入Excel(DataSet,DataGrid)        System.Web.UI.HtmlTextWriter hw 
= new
 System.Web.UI.HtmlTextWriter(tw);
导出导入Excel(DataSet,DataGrid)        ctl.RenderControl(hw);
导出导入Excel(DataSet,DataGrid)        HttpContext.Current.Response.Write(tw.ToString());
导出导入Excel(DataSet,DataGrid)        HttpContext.Current.Response.End();
导出导入Excel(DataSet,DataGrid)    }
        
导出导入Excel(DataSet,DataGrid)
导出导入Excel(DataSet,DataGrid)    
public static void DownloadFile(string
 physicalFilePath)
导出导入Excel(DataSet,DataGrid)    
{
导出导入Excel(DataSet,DataGrid)        FileStream stream
=null
;
导出导入Excel(DataSet,DataGrid)        
try
 
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            stream 
= new
 FileStream(physicalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
导出导入Excel(DataSet,DataGrid)            
int bufSize = (int
)stream.Length;
导出导入Excel(DataSet,DataGrid)            
byte[] buf = new byte
[bufSize];
导出导入Excel(DataSet,DataGrid)                                                                                                                                
导出导入Excel(DataSet,DataGrid)            
int bytesRead = stream.Read(buf, 0
, bufSize);
导出导入Excel(DataSet,DataGrid)            HttpContext.Current.Response.ContentType 
= "application/octet-stream"

导出导入Excel(DataSet,DataGrid)            HttpContext.Current.Response.AppendHeader(
"Content-Disposition""attachment;filename="+
System.IO.Path.GetFileName(physicalFilePath));
导出导入Excel(DataSet,DataGrid)            HttpContext.Current.Response.OutputStream.Write(buf, 
0
, bytesRead);
导出导入Excel(DataSet,DataGrid)            HttpContext.Current.Response.End();
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)        
finally 
导出导入Excel(DataSet,DataGrid)        
{
导出导入Excel(DataSet,DataGrid)            stream.Close();
导出导入Excel(DataSet,DataGrid)        }

导出导入Excel(DataSet,DataGrid)    }

导出导入Excel(DataSet,DataGrid)}

你可能感兴趣的:(datagrid)