成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法

asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法

熱門(mén)標(biāo)簽:南陽(yáng)外呼系統(tǒng)定制化 電話機(jī)器人軟件銷售工作 百度ai地圖標(biāo)注 玉林市機(jī)器人外呼系統(tǒng)哪家好 合肥電銷外呼系統(tǒng)哪家公司做的好 蘋(píng)果手機(jī)凱立德地圖標(biāo)注 預(yù)測(cè)式外呼系統(tǒng)使用說(shuō)明 申請(qǐng)400電話手續(xù) 同安公安400電話怎么申請(qǐng)流程

方法一 通過(guò)GridView(簡(jiǎn)評(píng):方法比較簡(jiǎn)單,但是只適合生成格式簡(jiǎn)單的Excel,且無(wú)法保留VBA代碼),頁(yè)面無(wú)刷新

aspx.cs部分

復(fù)制代碼 代碼如下:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text;

public partial class DataPage_NationDataShow : System.Web.UI.Page
{
private Data_Link link = new Data_Link();
private string sql;

protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(DataPage_NationDataShow));
}

protected void btnExcel_Click(object sender, EventArgs e)
{
string strExcelName = "MyExcel";
strExcelName = strExcelName.Replace(@"/", "");

Data_Link link = new Data_Link();
string strSQL = this.hidParam.Value;
DataSet ds = new DataSet();
ds = link.D_DataSet_Return(strSQL);//獲得想要放入Excel的數(shù)據(jù)

gvExcel.Visible = true;
gvExcel.DataSource = null;
gvExcel.DataMember = ds.Tables[0].TableName;
gvExcel.DataSource = ds.Tables[0];
gvExcel.DataBind();

ExportToExcel(this.Page, gvExcel, strExcelName);
}

protected void gvExcel_RowDataBound(object sender, GridViewRowEventArgs e)
{ }
public override void VerifyRenderingInServerForm(Control control)
{ }

/// summary>
/// 工具方法,Excel出力(解決亂碼問(wèn)題)
/// /summary>
/// param name="page">調(diào)用頁(yè)面/param>
/// param name="excel">Excel數(shù)據(jù)/param>
/// param name="fileName">文件名/param>
public void ExportToExcel(System.Web.UI.Page page, GridView excel, string fileName)
{
try
{
foreach (GridViewRow row in excel.Rows)
{
for (int i = 0; i row.Cells.Count; i++)
{
excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow;
}
}
excel.Font.Size = 10;
excel.AlternatingRowStyle.BackColor = System.Drawing.Color.LightCyan;
excel.RowStyle.Height = 25;

page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
page.Response.Charset = "utf-8";
page.Response.ContentType = "application/vnd.ms-excel";
page.Response.Write("meta http-equiv=Content-Type content=text/html;charset=utf-8>");
excel.Page.EnableViewState = false;
excel.Visible = true;
excel.HeaderStyle.Reset();
excel.AlternatingRowStyle.Reset();

System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
excel.RenderControl(oHtmlTextWriter);
page.Response.Write(oStringWriter.ToString());
page.Response.End();

excel.DataSource = null;
excel.Visible = false;
}
catch (Exception e)
{

}
}
}

aspx部分
復(fù)制代碼 代碼如下:

head runat="server">
script type="text/javascript">
//Excel DownLoad
function excelExport(){
var hidText = document.getElementById("hidParam");
hidText.value = "some params";
document.getElementById("ExcelOutput").click();
}
/script>
/head>
body onload="pageInit()">
form id="form1" runat="server">
input type="button" value="EXCEL下載" style="width:100px;" onclick="excelExport()" id="excelBut" />
input id="hidParam" type="text" runat="server" style="display:none;"/>
asp:Button runat="server" ID="ExcelOutput" style="display:none" Text= "EXCEL出力" Width="0px" onclick="btnExcel_Click" UseSubmitBehavior="false"/>
asp:GridView ID="gvExcel" runat="server" Height="95px" OnRowDataBound="gvExcel_RowDataBound" Visible="False">/asp:GridView>
/form>
/body>

在剛才的aspx.cs代碼中
復(fù)制代碼 代碼如下:

foreach (GridViewRow row in excel.Rows)
{
for (int i = 0; i row.Cells.Count; i++)
{
excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow;
}
}

這部分是給表頭添加樣式。

有時(shí)候?yàn)榱吮阌跒g覽,需要給交叉行添加樣式,簡(jiǎn)單點(diǎn)的可以用下面這種:

復(fù)制代碼 代碼如下:

excel.AlternatingRowStyle.BackColor = System.Drawing.Color.LightCyan;

但是細(xì)看一下會(huì)發(fā)現(xiàn)它把一整行的樣式都改變了,包括后面那些沒(méi)有用到的列。

解決辦法是有,不過(guò)比較繁瑣,就是修改每個(gè)單元格的樣式。

復(fù)制代碼 代碼如下:

int rowCount = excel.Rows.Count;
int colCount = excel.HeaderRow.Cells.Count;

for (int i = 0; i rowCount; i++)
{
for(int j=0;jcolCount; j++)
{
excel.Rows[i].Cells[j].BackColor = System.Drawing.Color.LightCyan;
}
}

方法二 通過(guò)DataGrid(與方法一基本相同),頁(yè)面無(wú)刷新

aspx.cs部分

復(fù)制代碼 代碼如下:

public override void VerifyRenderingInServerForm(Control control)
{}

/// summary>
/// エクセル出力イベント
/// /summary>
/// param name="sender">/param>
/// param name="e">/param>
private void ExcelBut_Click(object sender, System.EventArgs e)
{
DataGrid dgExcel = new DataGrid();

try
{
DataSet ds = getExcelData(this.PageParams.Value);//出力データを取得する

if(ds.Tables[0].Rows.Count>0)
{
//エクセルへデータを投入する
string execlName= "MyExcel";
Encoding encodingType=System.Text.Encoding.UTF8;
dgExcel.DataMember=ds.Tables[0].TableName;
dgExcel.DataSource=ds.Tables[0];

Response.Buffer = true;
Response.Charset = "utf-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + execlName+ ".xls");
Response.ContentEncoding = encodingType;
Response.ContentType = "application/ms-excel";
StringWriter oStringWriter = new StringWriter();
HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
dgExcel.DataBind();
dgExcel.Visible = true;
dgExcel.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.Flush();
Response.Close();
dgExcel.DataSource = null;
dgExcel.Visible = false;
}
else
{
Response.Write("script>alert('xxxxxx')/script>");
}
}
catch(Exception ex)
{
Response.Write("script>alert('oooooo')/script>");
}
}

aspx部分
復(fù)制代碼 代碼如下:

head runat="server">
script type="text/javascript">
//Excel DownLoad
function excelExport(){
var hidText = document.getElementById("hidParam");
hidText.value = "some params";
document.getElementById("ExcelOutput").click();
}
/script>
/head>
body onload="pageInit()">
form id="form1" runat="server">
input type="button" value="EXCEL下載" style="width:100px;" onclick="excelExport()" id="excelBut" NAME="excelBut"/>
input id="hidParam" type="text" runat="server" style="display:none;" NAME="hidParam"/>
asp:Button runat="server" ID="ExcelOutput" style="display:none" Text= "EXCEL出力" Width="0px" onclick="btnExcel_Click" UseSubmitBehavior="false"/>
asp:datagrid id="gvExcel" Visible="False" Runat="server" style="Z-INDEX: 107; POSITION: absolute; TOP: 72px; LEFT: 520px"
Width="80px" Height="40px">/asp:datagrid>
/form>
/body>

方法三 以XML形式的Excel方式(可以設(shè)置豐富的樣式,并可以有多個(gè)sheet,但需要模版。速度很快,但生成的文件較大,且無(wú)法保留VBA代碼)

具體方法:把模版以 XML Document形式另存為A.xml。然后參照A.xml中的內(nèi)容即可

復(fù)制代碼 代碼如下:
 
private void ExcelBut_Click(object sender, System.EventArgs e)
{
DataSet ds = new DataSet();
string ExcelFileName = "";
DataRow dr=[------列名信息-------];
try
{
ExcelFileName = Path.Combine(Request.PhysicalApplicationPath + "/ExcelFile", "MyExcel.xls");

//獲取Excel需要的數(shù)據(jù)
ds = [------獲得數(shù)據(jù)-------];
if (ds.Tables.Count == 0)
{
Response.Write("script type='text/javascript'>alert('無(wú)數(shù)據(jù)');/script>");
return;
}
int sheetNum = ds.Tables.Count / 2;
StreamWriter writer = new StreamWriter(ExcelFileName, false);

//Styles標(biāo)簽前面的信息相當(dāng)于'頭信息',不需要改變
writer.WriteLine("?xml version=\"1.0\"?>");
writer.WriteLine("?mso-application progid=\"Excel.Sheet\"?>");
writer.WriteLine("Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"");
writer.WriteLine("xmlns:o=\"urn:schemas-microsoft-com:office:office\"");
writer.WriteLine("xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");
writer.WriteLine("xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"");
writer.WriteLine("xmlns:html=\"http://www.w3.org/TR/REC-html40\">");
writer.WriteLine("DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\">");
writer.WriteLine("LastAuthor>Automated Report Generator Example/LastAuthor>");
writer.WriteLine(string.Format("Created>{0}T{1}Z/Created>", DateTime.Now.ToString("yyyy-mm-dd"), DateTime.Now.ToString("HH:MM:SS")));
writer.WriteLine(" Company>51aspx.com/Company>");
writer.WriteLine(" Version>11.6408/Version>");
writer.WriteLine("/DocumentProperties>");
writer.WriteLine("ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\">");
writer.WriteLine("WindowHeight>6195/WindowHeight>");
writer.WriteLine(" WindowWidth>18495/WindowWidth>");
writer.WriteLine(" WindowTopX>525/WindowTopX>");
writer.WriteLine(" WindowTopY>4260/WindowTopY>");
writer.WriteLine(" AcceptLabelsInFormulas/>");
writer.WriteLine(" ProtectStructure>True/ProtectStructure>");
writer.WriteLine(" ProtectWindows>False/ProtectWindows>");
writer.WriteLine("/ExcelWorkbook>");

//通過(guò) ss:ID 和 ss:Name相當(dāng)于html中style的類
writer.WriteLine(" Styles> ");
writer.WriteLine(" Style ss:ID='Default' ss:Name='Normal'> ");
writer.WriteLine(" Alignment ss:Vertical='Bottom'/> ");
writer.WriteLine(" Borders/> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" NumberFormat/> ");
writer.WriteLine(" Protection/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s23'> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11' ");
writer.WriteLine(" ss:Color='#FF0000'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s24'> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s25'> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s26'> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11' ");
writer.WriteLine(" ss:Color='#FF0000'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s27'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#CCFFFF' ss:Pattern='Solid'/> ");
writer.WriteLine(" Protection/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s28'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#CCFFFF' ss:Pattern='Solid'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s29'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#CCFFFF' ss:Pattern='Solid'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s30'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#CCFFFF' ss:Pattern='Solid'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s31'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#CCFFFF' ss:Pattern='Solid'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s32'> ");
writer.WriteLine(" Alignment ss:Vertical='Bottom' ss:WrapText='1'/> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#CCFFFF' ss:Pattern='Solid'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s33'> ");
writer.WriteLine(" Alignment ss:Vertical='Bottom' ss:WrapText='1'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s34'> ");
writer.WriteLine(" Alignment ss:Vertical='Bottom' ss:WrapText='1'/> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s35'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s36'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior ss:Color='#FFFF99' ss:Pattern='Solid'/> ");
writer.WriteLine(" Protection ss:Protected='0'/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s37'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s38'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" Style ss:ID='s39'> ");
writer.WriteLine(" Borders> ");
writer.WriteLine(" Border ss:Position='Bottom' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Left' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Right' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" Border ss:Position='Top' ss:LineStyle='Continuous' ss:Weight='1'/> ");
writer.WriteLine(" /Borders> ");
writer.WriteLine(" Font ss:FontName='MS Pゴシック' x:CharSet='128' x:Family='Modern' ss:Size='11'/> ");
writer.WriteLine(" Interior/> ");
writer.WriteLine(" /Style> ");
writer.WriteLine(" /Styles> ");

//Sheet操作
writer.WriteLine("Worksheet ss:Name='" + dr["Msg030"] + "'>");
writer.WriteLine(" Table ss:ExpandedColumnCount='9' ss:ExpandedRowCount='3000' x:FullColumns='1' x:FullRows='1' ss:StyleID='s33' ss:DefaultColumnWidth='54' ss:DefaultRowHeight='13.5'>");
writer.WriteLine("Column ss:StyleID='s34' ss:AutoFitWidth='0' ss:Width='110.25'/>");
writer.WriteLine("Column ss:StyleID='s34' ss:AutoFitWidth='0' ss:Width='33.75'/>");
writer.WriteLine("Column ss:StyleID='s34' ss:AutoFitWidth='0' ss:Width='118.5'/>");
writer.WriteLine("Column ss:StyleID='s34' ss:AutoFitWidth='0' ss:Width='159.75'/>");
writer.WriteLine("Column ss:StyleID='s34' ss:AutoFitWidth='0' ss:Width='147.75' ss:Span='4'/>");

for (int num = sheetNum - 1; num >= 0; num = num - 1)
{
// 考課表間有3行的空行
if (num != sheetNum - 1)
{
writer.WriteLine("Row>");
writer.WriteLine("/Row>");
writer.WriteLine("Row>");
writer.WriteLine("/Row>");
writer.WriteLine("Row>");
writer.WriteLine("/Row>");
}

// 列名
writer.WriteLine("Row ss:Height='40.5'>");
writer.WriteLine("Cell ss:StyleID='s32'>Data ss:Type='String'>" + dr["Msg002"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s32'>Data ss:Type='String'>" + dr["Msg003"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s32'>Data ss:Type='String'>" + dr["Msg004"] + "/Data>/Cell>");
writer.WriteLine("/Row>");

// 詳細(xì)數(shù)據(jù)
for (int i = 0; i ds.Tables[2 * num].Rows.Count; i++)
{
writer.WriteLine("Row ss:Height='27'>");
writer.WriteLine("Cell>Data ss:Type='String'>" + ds.Tables[2 * num].Rows[i]["EvalLevel1Name"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell>Data ss:Type='Number'>" + ds.Tables[2 * num].Rows[i]["EvalLevel2Code"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell>Data ss:Type='String'>" + ds.Tables[2 * num].Rows[i]["EvalLevel2Name"].ToString() + "/Data>/Cell>");
writer.WriteLine("/Row>");
}
}
writer.WriteLine(" /Table>");
writer.WriteLine(" /Worksheet>");

// 其他Sheet操作
for (int num = sheetNum - 1; num >= 0; num--)
{
writer.WriteLine("Worksheet ss:Name='" + ds.Tables[2 * num].Rows[0][1].ToString() + "' ss:Protected='1'>");
writer.WriteLine(" Table ss:ExpandedColumnCount='31' ss:ExpandedRowCount='30000' x:FullColumns='1' x:FullRows='1' ss:StyleID='s25' ss:DefaultColumnWidth='54' ss:DefaultRowHeight='13.5'>");
writer.WriteLine(" Row>");
writer.WriteLine("Cell ss:StyleID='s26'>PhoneticText xmlns='urn:schemas-microsoft-com:office:excel'>カキキイロテンスウツ/PhoneticText>Data ss:Type='String'>" + dr["Msg031"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:Index='14' ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("/Row>");
writer.WriteLine(" Row>");
writer.WriteLine("Cell ss:StyleID='s26'>PhoneticText xmlns='urn:schemas-microsoft-com:office:excel'>カキキイロテンスウツ/PhoneticText>Data ss:Type='String'>" + dr["Msg032"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:Index='14' ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");
writer.WriteLine("Cell ss:StyleID='Default'/>");

writer.WriteLine("/Row>");

// 列名
writer.WriteLine("Row>");
writer.WriteLine("Cell ss:StyleID='s27'>Data ss:Type='String'>" + dr["Msg001"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s28'>Data ss:Type='String'>" + dr["Msg002"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s28'>Data ss:Type='String'>" + dr["Msg003"] + "/Data>/Cell>");
writer.WriteLine("/Row>");
int SheetN = ds.Tables[2 * num].Rows.Count;

//詳細(xì)數(shù)據(jù)
for (int i = 0; i SheetN; i++)
{
writer.WriteLine("Row>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='Number'>" + ds.Tables[2 * num].Rows[i]["EvalLevel1Code"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>" + ds.Tables[2 * num].Rows[i]["EvalLevel1Name"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='Number'>" + ds.Tables[2 * num].Rows[i]["EvalLevel2Code"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell>Data ss:Type='String'> /Data>/Cell>");
writer.WriteLine("/Row>");
}
writer.WriteLine("Row>");
writer.WriteLine("/Row>");
writer.WriteLine("Row>");
writer.WriteLine("/Row>");

//列名
writer.WriteLine("Row>");
writer.WriteLine("Cell ss:StyleID='s29'>Data ss:Type='String'>" + dr["Msg011"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s30'/>");
writer.WriteLine("Cell ss:StyleID='s31'/>");
writer.WriteLine("Cell ss:StyleID='s29'>Data ss:Type='String'>" + dr["Msg012"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s31'/>");
writer.WriteLine("Cell ss:StyleID='s29'>Data ss:Type='String'>" + dr["Msg013"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s30'/>");
writer.WriteLine("Cell ss:StyleID='s30'/>");
writer.WriteLine("Cell ss:StyleID='s30'/>");
writer.WriteLine("Cell ss:StyleID='s31'/>");
writer.WriteLine("Cell ss:StyleID='s29'>Data ss:Type='String'>" + dr["Msg014"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s31'/>");
writer.WriteLine("Cell ss:StyleID='s29'>Data ss:Type='String'>" + dr["Msg015"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s31'/>");
writer.WriteLine("/Row>");
writer.WriteLine("Row>");
writer.WriteLine("Cell ss:StyleID='s28'>Data ss:Type='String'>" + dr["Msg016"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s28'>Data ss:Type='String'>" + dr["Msg017"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s28'>Data ss:Type='String'>" + dr["Msg018"] + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s28'>Data ss:Type='String'>" + dr["Msg019"] + "/Data>/Cell>");

writer.WriteLine("/Row>");
int DateLen = ds.Tables[2 * num + 1].Rows.Count;
string EmployeeManagement = "";

for (int i = 0; i DateLen; i++)
{
writer.WriteLine("Row>");
writer.WriteLine("Cell ss:StyleID='s37'>Data ss:Type='Number'>" + ds.Tables[2 * num + 1].Rows[i]["EmployeeManagementID"].ToString() + "/Data>/Cell>");
if (!EmployeeManagement.Equals(ds.Tables[2 * num + 1].Rows[i]["EmployeeManagementID"].ToString()))
{
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='Number'>" + ds.Tables[2 * num + 1].Rows[i]["EmployeeCode"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>" + ds.Tables[2 * num + 1].Rows[i]["EmployeeName"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>" + ds.Tables[2 * num + 1].Rows[i]["BefEmployeeName2"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>" + ds.Tables[2 * num + 1].Rows[i]["EmployeeName2"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s38'>Data ss:Type='Number'>" + ds.Tables[2 * num + 1].Rows[i]["EvalLevel1Code"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>" + ds.Tables[2 * num + 1].Rows[i]["EvalLevel1Name"].ToString() + "/Data>/Cell>");
EmployeeManagement = ds.Tables[2 * num + 1].Rows[i]["EmployeeManagementID"].ToString();
}
else
{
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s38'>Data ss:Type='String'>/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>/Data>/Cell>");
}
writer.WriteLine("Cell ss:StyleID='s39'>Data ss:Type='Number'>" + ds.Tables[2 * num + 1].Rows[i]["EvalLevel2Code"].ToString() + "/Data>/Cell>");
writer.WriteLine("Cell ss:StyleID='s35'>Data ss:Type='String'>" + ds.Tables[2 * num + 1].Rows[i]["EvalLevel2Name"].ToString() + "/Data>/Cell>");
writer.WriteLine("/Row>");
}
writer.WriteLine(" /Table>");
writer.WriteLine(" /Worksheet>");
}

writer.WriteLine("/Workbook>");
writer.Close();

FileDownload(ExcelFileName);
}
catch (System.Exception ex)
{

}
finally
{
Response.End();
}
}
public void FileDownload(FullFileName)
{
FileInfo DownloadFile = new FileInfo(FullFileName);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(MyFile".xls")));
Response.ContentType = "application/ms-excel;charset=UTF-8";//DownloadFile.FullNameoctet-stream
Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift-jis");
Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
Response.WriteFile(FullFileName);
Response.Flush();

if (File.Exists(FullFileName))
{
File.Delete(FullFileName);
}
}

方法四 用微軟的COM組件操作Excel。雖然可以很方便的操作單元格,并且能保留VBA代碼,它相當(dāng)于直接打開(kāi)一個(gè)EXCEL進(jìn)程。

當(dāng)初這個(gè)COM組件式給WinForm準(zhǔn)備的,但在Web端有很多東西的支持不盡人意,例如無(wú)法用組件中的方法關(guān)閉Excel對(duì)象,

只能通過(guò)強(qiáng)制關(guān)閉Excel進(jìn)程的方式(這其中還有很多問(wèn)題,例如只能關(guān)閉當(dāng)前打開(kāi)的這個(gè)Excel的進(jìn)程,否則會(huì)把其他用戶的Excel進(jìn)程關(guān)閉)。在這里不推薦

方法五 用流的方式,把內(nèi)容以Table的格式向Excel中放數(shù)據(jù) 好處是 可以生成格式豐富復(fù)雜的Excel,頁(yè)面無(wú)刷新

aspx部分

復(fù)制代碼 代碼如下:

asp:Button ID="hidExport" onClick="hidExport_Click()" Runat="server">/asp:Button>

aspx.cs部分
復(fù)制代碼 代碼如下:

//內(nèi)容很好理解,只需當(dāng)成Table來(lái)拼字符串即可
private string getExcelContent()
{
StringBuilder sb = new StringBuilder();

sb.Append("table borderColor='black' border='1' >");
sb.Append("thead>tr>th colSpan='2' bgColor='#ccfefe'>標(biāo)題/th>/tr>");
sb.Append("tr>th bgColor='#ccfefe'>號(hào)碼/th>th bgColor='#ccfefe'>名字/th>/tr>/thead>");
sb.Append("tbody>");
sb.Append("tr class='firstTR'>td bgcolor='#FF99CC'>/td>td>/td>/tr>");
sb.Append("tr class='secondTR'>td>/td>td bgcolor='lightskyblue'>/td>/tr>");
sb.Append("/tbody>/table>");
return sb.ToString();
}

private void hidExport_Click(object sender, System.EventArgs e)
{
string content = getExcelContent();
string css = ".firstTR td{color:blue;width:100px;}.secondTR td{color:blue;width:100px;}";
string filename = "Test.xls";

CommonTool.ExportToExcel(filename, content ,css);
}

工具類CommonTool
復(fù)制代碼 代碼如下:

public class CommonTool
{
/// summary>
/// 以流的形式,可以設(shè)置很豐富復(fù)雜的樣式
/// /summary>
/// param name="content">Excel中內(nèi)容(Table格式)/param>
/// param name="filename">文件名/param>
/// param name="cssText">樣式內(nèi)容/param>
public static void ExportToExcel(string filename, string content,string cssText)
{
var res = HttpContext.Current.Response;
content = String.Format("style type='text/css'>{0}/style>{1}",cssText,content);

res.Clear();
res.Buffer = true;
res.Charset = "UTF-8";
res.AddHeader("Content-Disposition", "attachment; filename=" + filename);
res.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
res.ContentType = "application/ms-excel;charset=UTF-8";
res.Write(content);
res.Flush();
res.End();
}
}

這種方法比較靈活,而且可以通過(guò)選擇器來(lái)添加樣式,相當(dāng)不錯(cuò)。缺點(diǎn)就是需要將數(shù)據(jù)轉(zhuǎn)換成字符串。

您可能感興趣的文章:
  • ASP.NET Core 導(dǎo)入導(dǎo)出Excel xlsx 文件實(shí)例
  • ASP.NET操作EXCEL的總結(jié)篇
  • .NET讀取Excel文件的三種方法的區(qū)別
  • ASP.NET(C#)讀取Excel的文件內(nèi)容
  • asp.net使用npoi讀取excel模板并導(dǎo)出下載詳解
  • Asp.Net使用Npoi導(dǎo)入導(dǎo)出Excel的方法
  • asp.net中EXCEL數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)的方法
  • ASP.NET導(dǎo)出Excel打開(kāi)時(shí)提示:與文件擴(kuò)展名指定文件不一致解決方法
  • 直接在線預(yù)覽Word、Excel、TXT文件之ASP.NET
  • .Net Core使用OpenXML導(dǎo)出、導(dǎo)入Excel

標(biāo)簽:臺(tái)州 南京 嘉興 海南 南昌 揚(yáng)州 南京 淄博

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法》,本文關(guān)鍵詞  asp.net,生成,Excel,并,導(dǎo)出,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成年女人18级毛片毛片免费| 欧美精品一区二区久久婷婷| 亚洲国产精品久久久久爰性色| www久久精品| 亚洲同性同志一二三专区| 日本日本精品二区免费| 一区二区成人av| 国产波霸爆乳一区二区| 在线不卡国产精品| 视频福利在线| 欧美一区二区三区啪啪| jizzjizzjizzjizz日本老师| 久久久久久久久综合影视网| 在线看你懂得| 天堂社区日本电影超碰| 亚洲美女av在线播放| www.夜夜操.com| 黄色动漫在线免费看| 国内一区二区三区在线视频| 亚洲精品国产精品乱码不99按摩| 亚洲久草在线| 国产一区二区0| 主播福利视频一区| 欧美亚洲午夜视频在线观看| 在线看视频你懂得| 亚洲精品一区二区三区精华液| 99久久免费国| 色综合天天视频在线观看| 国产免费观看av| 亚洲精品ady| 日韩精品乱码av一区二区| 天天看片中文字幕| av男人的天堂网| 欧美成人精品一区| 成人性生活视频免费看| 国产毛片毛片毛片毛片毛片毛片| av片免费观看| 色狠狠久久av五月综合| 99精品欧美一区二区三区小说| 免费看精品久久片| 欧洲视频一区二区| 欧美一级二级在线观看| 一级黄色小视频| 国产成人看片| 深夜福利在线观看直播| 日韩人妻无码一区二区三区| 欧美激情在线一区| 亚洲欧美一区二区三区孕妇| 日本精品一区二区三区在线| 95精品视频| 成人免费在线观看av| 欧美xxxx老人做受| 欧美日韩激情在线| 狠狠狠综合7777久夜色撩人| 一区二区在线观看视频在线| 国产69精品久久久久按摩| 亚洲在线观看免费| 三级在线观看一区二区| 国产xxx精品视频大全| 国产成人无码一区二区在线播放| xxx免费观看| 91在线直播| 欧美午夜视频在线观看| 丰满少妇xoxoxo视频| av官网在线播放| 2022成人影院| 人妻少妇精品久久| 美女激情视频网站| 国产精品www爽爽爽| aaa免费在线观看| 天堂av在线网站| 丝袜美腿中文字幕| 日韩美女激情视频| 黄色网在线视频| 五月天婷婷综合网| 国产极品久久久久久久久波多结野| 欧美日本三区| 影音先锋日韩精品| 人人爱人人干婷婷丁香亚洲| 四虎影视最新网站入口在线观看| 国内成人免费视频| 深夜福利亚洲| 亚洲一区二区三区四区在线| 亚洲欧美一级二级三级| 电影天堂最新网址| 国产激情小视频在线| 国产精品久久久久久久泡妞| 拍拍拍999自拍偷| 欧美日本在线播放| 久久女同性恋中文字幕| 97超碰欧美中文字幕| 欧美成人在线免费视频| 日韩精品永久网址| 精品一区二区三区免费播放| 欧美大片在线观看一区二区| 日韩黄色影片| 日本三日本三级少妇三级66| 亚洲www永久成人夜色| 亚洲一区二区三区精品动漫| 日韩在线观看| 欧美国产在线看| 99热免费观看| 蜜臀国产一区| 538国产精品一区二区在线| 日日摸天天爽天天爽视频| 中日韩午夜理伦电影免费| 亚洲电影av| 国产精品一区二区你懂得| 亚洲午夜激情视频| 毛片在线网站| 国产精品综合一区二区三区| 日本高清视频免费看| 538在线一区二区精品国产| 亚洲免费视频中文字幕| 国产精品欧美一区喷水| 国产农村妇女精品一区| 日本欧美高清| 国产精品一区二区你懂得| 久久精品卡一| 丝袜诱惑一区二区| 老鸭窝亚洲一区二区三区| 天天看天天干| 亚洲国产精品无码久久久| 福利视频在线| 日韩美女在线| 欧美成a人片在线观看久| 国产高潮失禁喷水爽到抽搐| 欧美福利第一页| 中文字幕在线二区| 91精品国模一区二区三区| 亚洲精品国产精品国自产在线| 影音先锋5566资源网| 亚洲日本色图| 蜜桃免费在线视频| 日韩女优在线播放| 亚洲一区 欧美| 国产区精品在线| 久久99精品国产91久久来源| 色网站在线看| 成人在线视频观看| 欧美一区三区三区高中清蜜桃| 国产精品久久久久久久久免费高清| 国模无码视频一区| 亚洲午夜一区| 伊人影院蕉久552| 欧美日韩中国免费专区在线看| 久久天天久久| 拍拍拍无挡免费播放视频在线观看| 一区二区成人av| 蜜桃传媒一区二区| 一区二区三区美女xx视频| 亚洲啪av永久无码精品放毛片| 亚洲欧美三级在线| 欧美一区二区三区在线免费观看| 久久精品久久久| 操人在线观看| 日韩成人在线视频| 久久黄色片视频| 国产精品成人自拍| 欧美牲交a欧美牲交| 天天爽夜夜爽视频| 亚洲成人不卡| 3d动漫啪啪精品一区二区免费| 136导航精品福利| 韩国成人福利片在线播放| 国产小视频国产精品| 日本大片在线看黄a∨免费| 国产麻豆一精品一av一免费| 欧美一级免费播放| 国产精品毛片va一区二区三区| 国产永久免费高清在线观看| 九九热这里只有精品6| 国产情侣一区二区三区| 国产专区一区| 日韩精品专区在线影院观看| 蜜桃精品成人影片| 欧美丰满老妇厨房牲生活| 日韩欧美成人区| 精品国产av 无码一区二区三区| 成人在线免费视频观看| 白虎精品一区| 特黄特色免费视频| 久久影院在线观看| 亚洲人在线视频| 伊人精品综合| 欧美精品啪啪| 久久精品一区二区国产| 激情成人亚洲| 国产精品不卡一区二区三区在线观看| 99久久久久免费精品国产| 国产草草影院ccyycom| 日韩av第一页| 欧美高清一级片| 亚洲欧洲一区二区三区久久| 久久精品国产精品青草| 少妇特黄一区二区三区| 2025中文字幕| 亚洲缚视频在线观看| 日本片在线观看| 免费在线视频你懂得| 欧美日韩极品在线观看一区| 国产精品国产自产拍在线| 黄网站在线播放| 亚洲综合最新在线| free性m.freesex欧美| 亚洲精品字幕| 伊人网在线视频观看| 欧美乱大交xxxxx另类| 欧美亚洲视频在线看网址| 国产做受69高潮| 天堂网一区二区| 黄瓜视频在线免费观看| 久久精品国产屋| 久久这里只有精品1| 国产成人av片| 国产裸体美女永久免费无遮挡| 美日韩精品免费视频| 日韩国产在线播放| 一级久久久久久| 91黄色免费网站| 欧美成人亚洲成人| 97香蕉碰碰人妻国产欧美| 国产精品久久久久久久久久久久久久久久久久| 欧美亚洲色图视频| 亚洲午夜av电影| 亚洲国产成人精品电影| 日韩影片在线播放| 粉嫩绯色av一区二区在线观看| 国产美女精品久久久| 午夜午夜精品一区二区三区文| 国产偷窥女洗浴在线观看亚洲| 国产精品国产亚洲精品看不卡15| 免费在线黄色影片| 伊人色在线观看| 亚洲天堂一区二区三区| 色偷偷88888欧美精品久久久| 日本少妇久久久| 欧美一级电影久久| 欧美精品久久久久久久久久| 久久国产人妖系列| 久久久精品网| 正在播放国产精品| 日本免费看黄| 国产一区白浆| 日韩欧美aaa| 国产精品99久久久久久宅男| 国产在线视频精品一区| 一级成人黄色片| 久久久久久av| 秋霞午夜av一区二区三区| 69av亚洲| 亚洲美女一区二区三区| 日本中文字幕网址| 九九精品视频在线观看| 欧美在线不卡视频| 欧美videos另类精品| 日韩美女在线观看| 欧美国产亚洲另类动漫| 免费看精品久久片| 色综合导航网站| 国产精品一区牛牛影视| 精品欧美一区免费观看α√| 日韩欧美视频免费在线观看| 7777免费精品视频| 日韩精品在线第一页| 日本在线观看www| 国产精品国产高清国产| 成年丰满熟妇午夜免费视频| 97国产真实伦对白精彩视频8| 日本xxx在线播放| 91肉色超薄丝袜脚交一区二区| 国产精品成人av久久| 羞羞的视频免费| 久久久久99精品成人片| 日韩电影免费在线| 黄色片子在线观看| 天天性天天草| 18禁网站免费无遮挡无码中文| 成年男人的天堂| 激情欧美一区二区三区| 国产一区二区高清在线| 欧美福利视频一区| 亚洲一区二区福利视频| 亚洲久久久久久久久久久| 国产清纯白嫩初高中在线观看性色| 夫妻av一区二区| 国产精选一区二区| 亚洲成人精品在线| 久久综合五月天婷婷伊人| 欧美色综合天天久久综合精品| 美女喷水白浆| 欧美日本在线看| 久久久精彩视频| 成人影院av| 亚洲深爱激情| 黄色欧美成人| 日韩精选在线| 老司机午夜精品99久久| 国产免费成人| 一区二区三区 欧美| 在线免费观看黄| 天堂…中文在线最新版在线| 在线日韩网站| 日韩精品在线不卡| 欧美成人免费大片| 欧美在线性爱视频| 国产乱淫av免费| 亚洲国产欧美日韩在线观看第一区| 国产日韩欧美一区二区三区在线观看| 国产亚洲精久久久久久无码77777| 中文文精品字幕一区二区| 特黄特色免费视频| 日韩不卡av在线| 欧美亚洲自拍偷拍| 久久天堂影院| www.8ⅹ8ⅹ羞羞漫画在线看| 精品久久久久久久久国产字幕| 欧美极品在线| 日韩一区二区免费视频| 福利二区91精品bt7086| 黄页视频在线观看| 国产日韩欧美电影| 欧美日韩大尺度| 91成品人影院| 亚洲无线视频| 国产裸体永久免费无遮挡| 欧美做受高潮1| 欧美色就是色|