嗨,我正在使用 jQuery 和 Microsoft ASP.net 2.0、C# 作为服务器端在 Web 上开发富客户端 UI,我基本上有 2 个问题,列在下面
- 为此,我正在使用 HTMLTextWriter 和 StringWriter 类库。我在互联网上搜索并从各种教程和/或提示中学到了什么正在传输数据,并且在那部分一切正常,但是在将 html 转换为 excel 电子表格时,它还将下载页面的 html 标记附加到 excel 标记中。
- 当我在输出数据后调用 Response.Close() 时,出现连接中止错误。
这是代码片段
公共 StringWriter getHTMLStream(){ 输出 = 新的 StringWriter(); htmlWriter = new HtmlTextWriter(输出); 字符串 html=@" 表 {mso-displayed-decimal-separator:'\.'; mso-displayed-thousand-separator:'\,';}.xlGeneral {padding-top:1px; 填充右:1px;填充左:1px;mso忽略:填充;颜色:窗口文本;字体大小:10.0pt;字体粗细:400;字体样式:正常;文字装饰:无;字体系列:宋体;mso 通用字体系列:自动;mso字体字符集:0;mso 数字格式:一般;文本对齐:一般;垂直对齐:底部;mso-背景源:自动;mso 模式:自动;空白:nowrap;}“; html+=""+this.headerName+"-"+this.vehicleName+""; totalCols = (this.reportOrientation == "Horiz")?data.Columns.Count:2; if (this.reportOrientation == "Horiz") { html+=""; // 添加标题列 foreach(this.data.Columns 中的 DataColumn colName) { html+=""+colName.ColumnName.Trim()+""; } html+=""; // 现在添加数据 foreach(this.data.Rows 中的 DataRow dr) { html+=""; foreach(dr.ItemArray 中的字符串 colData) { html+=""+colData+""; } html+=""; } } 别的 { // 获取列 colsArr = 新字符串[this.data.Columns.Count]; int colCounter = 0; foreach(this.data.Columns 中的 DataColumn colName) { colsArr[colCounter] = colName.ColumnName; colCounter++; } //tableHeads = arrayToString(colsArr); // 获取字符串数组中的行数据 rowArr = 新字符串[this.data.Columns.Count]; foreach(this.data.Rows 中的 DataRow dr) { colCounter = 0; foreach(dr.ItemArray 中的字符串 col) { rowArr[colCounter] = col; colCounter++; } } //tableHeads = arrayToString(colsArr); // 添加 PDF 表格单元格 for (int i = 0; i "+colsArr[i].Trim()+""+rowArr[i].Trim()+""; } } html+= ""; htmlWriter.Write(html); 返回输出; } 私有字符串arrayToString(字符串[]数组){ 字符串结果 = string.Join(",", 数组); 结果 = result.Substring(0, result.Length - 1); 返回结果; } }
这就是我访问它的方式
响应。清除(); createHTML speedXLS = new createHTML("车速报告", "Horiz", vehicleName, speedDT); Response.ContentType = "应用程序/vnd.xls"; Response.AddHeader("content-disposition", "attachment;filename=VSpeedReport-" + vehicleName + ".xls"); Response.Write(speedXLS.getHTMLStream().ToString()); //Response.Close();
这是附加到我的 excel 标记的下载页面标记旁边想要的 xls 标记的内容。如何告诉服务器不要在响应正文中附加页面的标记?
**
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form name="form1" method="post" action="downloadData.aspx?reportType=speed&value=1&valUnit=Miles&reqType=XLS&selVehicle=GTA02&Email=gps%40gtalimo.com&startDate=2012-4-27+23%3a21%3a00&endDate=2012-4-28+01%3a21%3a00&vehicleName=GTA+07" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZKkkaxju0wAdoc1rGUJiLkzjS9eU" />
</div>
<div>
</div>
</form>
</body>
</html>
**
请提出意见或建议!谢谢!