mvc中,用chrome浏览器导出excel提示如题错误的解决办法。

<system.web>

<httpRuntime requestValidationMode="2.0"  targetFramework="4.5" />

<pages validateRequest="false" >

[ValidateInput(false)]
public ActionResult GridToExcel()
{
if (Request["ExportContent"] != "")
{
string listname = Request["listname"];
string sheetname = Request["sheetname"];
string tmpContent = Request["ExportContent"];//获取传递上来的文件内容
DataTable dt = Utility.ToDataTable(tmpContent);////rptSource.Tables[0];
//ExcelHelper.DataTable3Excel(dt, RptName);
Workbook b = FileExportExcel.OutFileToDisk(dt, listname, sheetname);
string filename = listname + "_" + DateTime.Now.ToString("yyyyMMddHHiiss");
return File(b.SaveToStream().ToArray(), "application/octet-stream", filename + ".xls");
}
else
{
return null;
}
//test();
//return null;
}

  

  public static DataTable ToDataTable(string json)
{
DataTable dataTable = new DataTable(); //实例化
DataTable result;
try
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
if (arrayList.Count > )
{
foreach (Dictionary<string, object> dictionary in arrayList)
{
if (dictionary.Keys.Count<string>() == )
{
result = dataTable;
return result;
}
if (dataTable.Columns.Count == )
{
string s = "";
Type aa = s.GetType();
double f = 0.001d;
Type bb = f.GetType();
int i = ;
Type cc = i.GetType();
foreach (string current in dictionary.Keys)
{
if (object.Equals(dictionary[current], null))
dataTable.Columns.Add(current, aa);
else
dataTable.Columns.Add(current, dictionary[current].GetType() == cc ? bb : dictionary[current].GetType());
}
}
DataRow dataRow = dataTable.NewRow();
foreach (string current in dictionary.Keys)
{
dataRow[current] = dictionary[current];
} dataTable.Rows.Add(dataRow); //循环添加行到DataTable中
}
}
}
catch (Exception e)
{
}
result = dataTable;
return result;
}
using Aspose.Cells; 

public static Workbook OutFileToDisk(DataTable dt, string tableName, string sheetname = "", string path = "")
{ Workbook workbook = new Workbook(); //工作簿
Worksheet sheet = workbook.Worksheets[]; //工作表\
if (!string.IsNullOrEmpty(sheetname))
{
sheet.Name = sheetname;
}
Cells cells = sheet.Cells;//单元格 //为标题设置样式
Style styleTitle = workbook.Styles[workbook.Styles.Add()];//新增样式
styleTitle.HorizontalAlignment = TextAlignmentType.Center;//文字居中
styleTitle.Font.Name = "宋体";//文字字体
styleTitle.Font.Size = ;//文字大小
styleTitle.Font.IsBold = true;//粗体 //样式2
Style style2 = workbook.Styles[workbook.Styles.Add()];//新增样式
style2.HorizontalAlignment = TextAlignmentType.Center;//文字居中
//style2.Font.Name = "宋体";//文字字体
//style2.Font.Size = 14;//文字大小
style2.Font.IsBold = true;//粗体
style2.IsTextWrapped = true;//单元格内容自动换行
style2.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
style2.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; //样式3
Style style3 = workbook.Styles[workbook.Styles.Add()];//新增样式
//style3.HorizontalAlignment = TextAlignmentType.Center;//文字居中
style3.Font.Name = "宋体";//文字字体
//style3.Font.Size = 12;//文字大小
style3.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin;
style3.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; int Colnum = dt.Columns.Count;//表格列数
int Rownum = dt.Rows.Count;//表格行数
//插入图片 //FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("~/Scripts/Image") + "/excelImage.png", FileMode.Open);
//byte[] byteData = new byte[fs.Length];
//fs.Read(byteData, 0, byteData.Length);
//fs.Close();
//cells.Merge(0, 0, 1, Colnum);//合并单元格
//cells[0, 0].PutValue(byteData);//填写内容
//cells.SetRowHeight(0, 38);
sheet.Pictures.Add(, , HttpContext.Current.Server.MapPath("~/Scripts/Image") + "/excelImage.png", , );
//生成行1 标题行
cells.Merge(, , , Colnum);//合并单元格
cells[, ].PutValue(tableName);//填写内容
cells[, ].SetStyle(styleTitle);
cells.SetRowHeight(, ); //生成行2 列名行
for (int i = ; i < Colnum; i++)
{
cells[, i].PutValue(dt.Columns[i].ColumnName);
cells[, i].SetStyle(style2);
//cells.SetRowHeight(1, 25);
} //生成数据行
for (int i = ; i < Rownum; i++)
{
for (int k = ; k < Colnum; k++)
{
cells[ + i, k].PutValue(dt.Rows[i][k]);//.ToString()
cells[ + i, k].SetStyle(style3);
}
//cells.SetRowHeight(2 + i, 24);
} return workbook;
//workbook.Save(path);
}
    function GridtoExcel(grid, listname, sheetname) {
var records = [];
var colu = [];
for (var i = 1; i < grid.columns.length; i++) {
if ((grid.columns[i].text === "") || (grid.columns[i].getId() === "")) {
}
else {
var dic = new Object();
dic.text = grid.columns[i].text;
dic.value = grid.columns[i].dataIndex;
colu.push(dic);
}
}
if (grid.getStore().data.items.length > 0) { for (var i = 0; i < grid.getStore().data.items.length; i++) {
var object = new Object;
var item = grid.getStore().data.items[i].data;
for (var j = 0; j < colu.length; j++) {
var daIndex = eval([colu[j].value]);
object[colu[j].text] = item[daIndex[0]];
}
records.push(object);
}
}
else {
var object = new Object;
for (var j = 0; j < colu.length; j++) {
object[colu[j].text] = null;
}
records.push(object);
} if (records.length > 0) {
var tempForm = document.createElement("form");
tempForm.action = '/Home/GridToExcel';
tempForm.method = "POST";
tempForm.target = "_blank";
var hideInput = document.createElement("input");
hideInput.type = "hidden";
hideInput.name = "ExportContent"
hideInput.value = Ext.JSON.encode(records);
tempForm.appendChild(hideInput);
var hideInput1 = document.createElement("input");
hideInput1.type = "hidden";
hideInput1.name = "listname"
hideInput1.value = listname;
tempForm.appendChild(hideInput1); var hideInput2 = document.createElement("input");
hideInput2.type = "hidden";
hideInput2.name = "sheetname"
hideInput2.value = sheetname;
tempForm.appendChild(hideInput2); tempForm.style.display = 'none';
// tempForm.get(0).encoding = 'application/json';
document.body.appendChild(tempForm);
tempForm.submit();
document.body.removeChild(tempForm);
}
else {
//
} }

从客户端(ExportContent="...ontinuous <br />Pass Count":13...")中检测到有潜在危险的 Request.Form 值。的更多相关文章

  1. 从客户端(SeekingJobs="<B>·</B> 物流规划,<B>·</...")中检测到有潜在危险的 Request.Form 值。

    今天提交各东西发觉出错了,错误信息如下: “/”应用程序中的服务器错误. 从客户端(SeekingJobs="<B>·</B> 物流规划,<B>·< ...

  2. 从客户端(ASPxFormLayout1$txtRule="<YYYY><MM><DD><XXXX>")中检测到有潜在危险的 Request.Form 值

    在有文本框的值属于这种时<YYYY><MM><DD><XXXX>,会报这个错 在webconfig中加入 <httpRuntime request ...

  3. 使用百度编辑器时,报错:从客户端("...)中检测到有潜在危险的 Request.Form 值

    ajax请求失败,提交不上去 起初没找到报错的这句话,可能由于我用了其他第三方插件的原因,后来改动了一下,出现了这个错误 然后百度得到答案:http://www.cnblogs.com/tearer/ ...

  4. 从客户端中检测到有潜在危险的 Request.Form 值] 处理办法

    当asp.net提交<>这些字符到aspx页面时,如果未设置 validaterequest="false",就会出现错误:从客户端(<?xml version= ...

  5. asp.net 从客户端中检测到有潜在危险的 Request.Form 值错误解

    从客户端(ftbContent="<P><A href="http://l...")中检测到有潜在危险的 Request.Form 值. 说明: 请求验 ...

  6. Asp.net mvc3的“从客户端中检测到有潜在危险的 Request.Form 值”问题解决

    Asp.net mvc3的“从客户端(content_v=\",<p>\n\t<imgalt=\"\" src...\")中检测到有潜在危险的 ...

  7. 从客户端(CourseIssueContent="<P>财务审计师岗位认证招生简章<BR>...")中检测到有潜在危险的 Request.Form 值。

    说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击.通过在 Page 指令或 配置节中设置 validateRequest ...

  8. "从客户端中检测到有潜在危险的 Request.Form 值"的解决方案汇总

    #事故现场 在一个asp.net 的项目中,前端通过ajax将富文本中的文字内容post到服务端的一个ashx中,在ashx中尝试读取参数值时, 结果报错:“从客户端中检测到有潜在危险的 Reques ...

  9. 客户端向服务端传送特殊字符解决方法(检测到有潜在危险的 Request.Form 值)

    当客户端向服务端传输特殊字符时报错,错误信息如下图:

随机推荐

  1. Java基础知识回顾(一):字符串小结

    Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...

  2. loj2073 「JSOI2016」扭动的回文串

    ref 主要是要理解"撑到"最长这个概念 (为啥我的代码这么长QAQ #include <iostream> #include <cstdio> using ...

  3. Python+Selenium练习篇之11-浏览器上前进和后退操作

    本文来介绍上如何,利用webdriver中的方法来演示浏览器中地址栏旁边的前进和后退功能. 相关脚本代码如下: # coding=utf-8import timefrom selenium impor ...

  4. Leetcode 629.K个逆序对数组

    K个逆序对数组 给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数. 逆序对的定义如下:对于数组的第i个和第 j个元素,如果满i < j且  ...

  5. 软工实践第八次作业——UML设计

    本次作业博客 团队组成 临时组长:何裕捷 组员:蔡子阳,陈德斌,胡青元,李麒,高裕翔,王焕仁,黄培鑫 UML 用例图 描述的部分: 1 这里是用户个人管理系统的用例图 面临的问题: 1 面临用户登录注 ...

  6. diea

    http://name.vip.int ellig.top/name

  7. [CQOI2014][bzoj3504] 危桥 [最大流]

    题面 传送门 思路 这道题中惟一的特别之处,就在于"危桥"这一个只能走两次的东西 我的第一想法是做一个dp,但是这道题只需要能不能走,也没有必要 网络流?貌似是个很好的选择 我们把 ...

  8. [SDOI2010] 所驼门王的宝藏 [建图+tarjan缩点+DAG dp]

    题面传送门: 传送门 思路: 看完题建模,容易得出是求单向图最长路径的问题 那么把这张图缩强联通分量,再在DAG上面DP即可 然而 这道题的建图实际上才是真正的考点 如果对于每一个点都直接连边到它所有 ...

  9. 模块(二)——简单的log日志

    简单的log日志 鉴于任何功能模块或系统在调试时都需要日志打印,这里随便写了一下,作为以后代码调试之用,只实现了不同等级的日志输出功能,其他的调试功能以后再行添加:使用方法简单,只需要在头文件里事先按 ...

  10. 【VBA】随机数

    [说明] 随机数.生成2个随机数m.n,取值范围为1~R.1~C Randomize m = )) + ) ' 1~R Random Int Randomize n = )) + ) ' 1~C Ra ...