导出导入Excel(DataSet,DataGrid)
2006-12-19 16:21
417 查看
using System;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Data;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Web;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Text.RegularExpressions;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Xml;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Xml.Xsl;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.IO;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Xml.XPath;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
namespace Document.Bll
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
/**//// <summary>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// Summary description for ExportExcel.
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
/// </summary>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public class ExportExcel
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public ExportExcel()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
GetXslFile#region GetXslFile
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private static void GetXslFile(DataSet ds,string xslPath)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strColumn = "";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strRow = "";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string dsName = ds.DataSetName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string tableName = ds.Tables[0].TableName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string header = dsName + "/" + tableName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
foreach(DataColumn clm in ds.Tables[0].Columns)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//特殊字符 <,>,",*,%,(,),& 替换
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 符号 xml下的值 excel中的值
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// < -------- _x003C_ ------ <
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// > -------- _x003E_ ------ >
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// " -------- _x0022_ ------ "
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// * -------- _x002A_ ------ *
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// % -------- _x0025_ ------ %
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// & -------- _x0026_ ------ &
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// ( -------- _x0028_ ------ (
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// ) -------- _x0029_ ------ )
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// = -------- _x003D_ ------ =
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strClmName = clm.ColumnName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strRowName = clm.ColumnName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf("&")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName = strClmName.Replace("&","&");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf("<")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName = strClmName.Replace("<","<");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf(">")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName=strClmName.Replace(">",">");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf("/"")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName=strClmName.Replace("/"",""");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("<")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("<","_x003C_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf(">")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace(">","_x003E_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("/"")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("/"","_x0022_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("*")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("*","_x002A_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("%")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("%","_x0025_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("&")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("&","_x0026_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("(")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("(","_x0028_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf(")")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace(")","_x0029_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("=")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("=","_x003D_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strColumn += "<th>" + strClmName +"</th>" + "/r/n";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRow += "<td>" + "<xsl:value-of select=" + "/"" + strRowName + "/"" +"/>" + "</td>" + "/r/n";
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string str = @"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<xsl:template match=""/"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<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"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<head>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8"" />
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<style>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
.xl24{mso-style-parent:style0;mso-number-format:""/@"";text-align:right;}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</style>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<xml>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ExcelWorkbook>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ExcelWorksheets>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ExcelWorksheet>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:Name>Sheet1</x:Name>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:WorksheetOptions>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ProtectContents>False</x:ProtectContents>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ProtectObjects>False</x:ProtectObjects>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ProtectScenarios>False</x:ProtectScenarios>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:WorksheetOptions>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:ExcelWorksheet>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:ExcelWorksheets>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:ExcelWorkbook>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xml>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</head>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<body> ";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += "/r/n" + @"<table border=""1"" cellpadding=""0"" cellspacing=""0"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<tr>" + "/r/n";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += strColumn;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += @" </tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<xsl:for-each select="""+header+@""">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<tr>";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += "/r/n" + strRow;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += @"</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xsl:for-each>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</table>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</body>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</html>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xsl:template>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xsl:stylesheet> ";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string path =xslPath;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(File.Exists(path))
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
FileStream fs = File.Create(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter sw=new StreamWriter(fs);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
sw.Write(str);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
sw.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
GetXmlFile#region GetXmlFile
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private static void GetXmlFile(DataSet ds,string xmlFilePath)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strXml = ds.GetXml();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(File.Exists(xmlFilePath))
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(xmlFilePath);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
FileStream fs1 = File.Create(xmlFilePath);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter writer = new StreamWriter(fs1);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
writer.Write(strXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
writer.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
fs1.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
BuildExcel#region BuildExcel
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private static void BuildExcel(DataSet ds,string path)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(File.Exists(path))
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_path = path.Substring(0,path.Length-4);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_fileXml = m_path + ".xml";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_fileXsl = m_path + ".xsl";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_fileXls = m_path + ".xls";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
try
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
GetXmlFile(ds,m_fileXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
GetXslFile(ds,m_fileXsl);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//Excel changed
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlDocument doc = new XmlDocument();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
doc.Load(m_fileXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XslTransform xslt = new XslTransform();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xslt.Load(m_fileXsl);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement root = doc.DocumentElement;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XPathNavigator nav = root.CreateNavigator();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlTextWriter writer = new XmlTextWriter(m_fileXls,null);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xslt.Transform(nav,null,writer,null);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
writer.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(m_fileXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(m_fileXsl);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
catch
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
throw;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
ToExcel#region ToExcel
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public static void ToExcel(System.Web.UI.Control ctl,string FileName)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.Charset ="UTF-8";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.ContentType ="application/ms-excel";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+""+FileName+".xls");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ctl.Page.EnableViewState =false;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
System.IO.StringWriter tw = new System.IO.StringWriter();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ctl.RenderControl(hw);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.Write(tw.ToString());
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.End();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
DownloadFile#region DownloadFile
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public static void DownloadFile(string physicalFilePath)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
FileStream stream=null;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
try
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
stream = new FileStream(physicalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int bufSize = (int)stream.Length;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
byte[] buf = new byte[bufSize];
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int bytesRead = stream.Read(buf, 0, bufSize);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.ContentType = "application/octet-stream";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename="+System.IO.Path.GetFileName(physicalFilePath));
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.OutputStream.Write(buf, 0, bytesRead);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.End();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
finally
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
stream.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Data;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Web;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Text.RegularExpressions;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Xml;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Xml.Xsl;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.IO;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
using System.Xml.XPath;
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
namespace Document.Bll
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
/**//// <summary>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
/// Summary description for ExportExcel.
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
/// </summary>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public class ExportExcel
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public ExportExcel()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
GetXslFile#region GetXslFile
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private static void GetXslFile(DataSet ds,string xslPath)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strColumn = "";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strRow = "";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string dsName = ds.DataSetName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string tableName = ds.Tables[0].TableName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string header = dsName + "/" + tableName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
foreach(DataColumn clm in ds.Tables[0].Columns)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//特殊字符 <,>,",*,%,(,),& 替换
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// 符号 xml下的值 excel中的值
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// < -------- _x003C_ ------ <
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// > -------- _x003E_ ------ >
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// " -------- _x0022_ ------ "
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// * -------- _x002A_ ------ *
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// % -------- _x0025_ ------ %
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// & -------- _x0026_ ------ &
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// ( -------- _x0028_ ------ (
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// ) -------- _x0029_ ------ )
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
// = -------- _x003D_ ------ =
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//*************************************************
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strClmName = clm.ColumnName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strRowName = clm.ColumnName;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf("&")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName = strClmName.Replace("&","&");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf("<")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName = strClmName.Replace("<","<");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf(">")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName=strClmName.Replace(">",">");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strClmName.IndexOf("/"")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strClmName=strClmName.Replace("/"",""");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("<")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("<","_x003C_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf(">")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace(">","_x003E_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("/"")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("/"","_x0022_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("*")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("*","_x002A_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("%")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("%","_x0025_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("&")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("&","_x0026_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("(")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("(","_x0028_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf(")")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace(")","_x0029_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(strRowName.IndexOf("=")!=-1)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRowName=strRowName.Replace("=","_x003D_");
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strColumn += "<th>" + strClmName +"</th>" + "/r/n";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
strRow += "<td>" + "<xsl:value-of select=" + "/"" + strRowName + "/"" +"/>" + "</td>" + "/r/n";
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string str = @"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<xsl:template match=""/"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<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"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<head>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8"" />
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<style>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
.xl24{mso-style-parent:style0;mso-number-format:""/@"";text-align:right;}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</style>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<xml>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ExcelWorkbook>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ExcelWorksheets>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ExcelWorksheet>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:Name>Sheet1</x:Name>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:WorksheetOptions>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ProtectContents>False</x:ProtectContents>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ProtectObjects>False</x:ProtectObjects>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<x:ProtectScenarios>False</x:ProtectScenarios>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:WorksheetOptions>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:ExcelWorksheet>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:ExcelWorksheets>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</x:ExcelWorkbook>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xml>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</head>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<body> ";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += "/r/n" + @"<table border=""1"" cellpadding=""0"" cellspacing=""0"">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<tr>" + "/r/n";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += strColumn;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += @" </tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<xsl:for-each select="""+header+@""">
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
<tr>";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += "/r/n" + strRow;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
str += @"</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xsl:for-each>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</table>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</body>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</html>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xsl:template>
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
</xsl:stylesheet> ";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string path =xslPath;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(File.Exists(path))
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
FileStream fs = File.Create(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter sw=new StreamWriter(fs);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
sw.Write(str);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
sw.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
GetXmlFile#region GetXmlFile
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private static void GetXmlFile(DataSet ds,string xmlFilePath)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string strXml = ds.GetXml();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(File.Exists(xmlFilePath))
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(xmlFilePath);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
FileStream fs1 = File.Create(xmlFilePath);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter writer = new StreamWriter(fs1);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
writer.Write(strXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
writer.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
fs1.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
BuildExcel#region BuildExcel
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private static void BuildExcel(DataSet ds,string path)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(File.Exists(path))
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(path);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_path = path.Substring(0,path.Length-4);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_fileXml = m_path + ".xml";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_fileXsl = m_path + ".xsl";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
string m_fileXls = m_path + ".xls";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
try
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
GetXmlFile(ds,m_fileXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
GetXslFile(ds,m_fileXsl);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//Excel changed
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlDocument doc = new XmlDocument();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
doc.Load(m_fileXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XslTransform xslt = new XslTransform();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xslt.Load(m_fileXsl);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlElement root = doc.DocumentElement;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XPathNavigator nav = root.CreateNavigator();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
XmlTextWriter writer = new XmlTextWriter(m_fileXls,null);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
xslt.Transform(nav,null,writer,null);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
writer.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(m_fileXml);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
File.Delete(m_fileXsl);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
catch
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
throw;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
ToExcel#region ToExcel
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public static void ToExcel(System.Web.UI.Control ctl,string FileName)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.Charset ="UTF-8";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.ContentType ="application/ms-excel";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+""+FileName+".xls");
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ctl.Page.EnableViewState =false;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
System.IO.StringWriter tw = new System.IO.StringWriter();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
ctl.RenderControl(hw);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.Write(tw.ToString());
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.End();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
DownloadFile#region DownloadFile
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
public static void DownloadFile(string physicalFilePath)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
FileStream stream=null;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
try
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
stream = new FileStream(physicalFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int bufSize = (int)stream.Length;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
byte[] buf = new byte[bufSize];
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int bytesRead = stream.Read(buf, 0, bufSize);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.ContentType = "application/octet-stream";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename="+System.IO.Path.GetFileName(physicalFilePath));
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.OutputStream.Write(buf, 0, bytesRead);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
HttpContext.Current.Response.End();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
finally
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
stream.Close();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
#endregion
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
相关文章推荐
- 导出导入Excel(DataSet,DataGrid)
- 导出导入Excel(DataSet,DataGrid)
- 导出导入Excel(DataSet,DataGrid)
- DataGrid、DataSet导出Excel
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- C# DataSet 导出 导入 Excel
- 关于导出excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 在asp.net中实现dataset与excel的相互导入导出
- 导出Excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- 关于导出excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- C# DataSet和Excel之间导入导出 (转)
- 导出Excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
- [C#] 将DataSet内容导入到Excel (矩阵区域导出)
- 能否改良Datagrid_DataSet将excel内容导入SQL Server
- DataSet、Excel、XML之间的导入导出
- DataSet和Excel文件的相互导入导出
- 利用OleDb方式对DataSet 和 Excel 数据快速导入导出
- C#导入Excel到Dataset和导出Excel到DataTable