protected
void Export( string
content, string
file)
{
HtmlDocument doc = new
HtmlDocument();
doc.LoadHtml(content);
HtmlNode table = doc.DocumentNode.SelectSingleNode( "//table" );
DataTable dttable = new
DataTable();
HtmlNode row = table.SelectSingleNode( "//tr[@class=\"title\"]" );
string
name = string .Empty;
foreach
(HtmlNode cell in
row.SelectNodes( "th|td" ))
{
name = cell.InnerText.Replace( "\r\n" , "" ).Trim();
dttable.Columns.Add(name); // create columns from th
}
foreach
( var
rows in
doc.DocumentNode.SelectNodes( "//tr[td]" ))
{
dttable.Rows.Add(rows.SelectNodes( "td" ).Select(td => td.InnerText.Replace( "\r\n" , "" ).Trim()).ToArray());
}
//return dttable;
dttable.Rows.RemoveAt(0);
if
(dttable.Columns.Contains( "操作" ))
dttable.Columns.Remove( "操作" );
GemBox.ExcelLite.ExcelFile ef = SaveData.DataTableToExcel(dttable);
Response.ContentType = "application/vnd.ms-excel" ;
Response.AddHeader( "Content-Disposition" , "attachment; filename="
+ file);
//string path = AppDomain.CurrentDomain.BaseDirectory + "xls_view\\" + file;
string
path = string .Format( "{0}xls_report\\{1}\\{2}" , AppDomain.CurrentDomain.BaseDirectory, GetAdmin.cid, GetAdmin.account);
if
(!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
path = System.IO.Path.Combine(path, file);
ef.SaveXls(path);
byte [] data = null ; ;
using
(System.IO.Stream str = new
System.IO.FileStream(path, System.IO.FileMode.Open))
{
data = new
byte [str.Length];
str.Read(data, 0, data.Length);
}
this .Response.OutputStream.Write(data, 0, data.Length);
}
|