嗨,我正在使用 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>
**
请提出意见或建议!谢谢!