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. 基类View

    尽管类视图看上去类的种类繁多,但每个类都是各司其职的,且从类的命名就可以很容易地看出这个类的功能.大致可分为如下三个大的功能块,分别由三个类提供对应的方法: 处理 HTTP 请求.根据 HTTP 请求 ...

  2. 59、佳博wifi打印机怎么配置

    1.去这里下载配置软件(注意,需要再windows下进行)http://pan.baidu.com/s/1bn1y4FX,并解压安装程序 2.连上wifi打印机的热点,比如说佳博打印机的默认为Gpri ...

  3. IOS笔记049-UITabBarController

    1.简单实现 效果:在视图底部显示一个工具栏 代码实现 // 创建窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScre ...

  4. IOS开发学习笔记006 - 指针

    C语言 指针 简单使用如下: int *p;//定义 int a = 10; p = &a;//赋值 int * b = &a;//定义并赋值 定义格式:类型 *指针变量名: 注意事项 ...

  5. Windows命令行中pip install jieba,但没有安装到anaconda3中

    系统混淆了python3环境下的pip和anaconda3环境下的pip. 找到Anaconda3的Scripts目录,我这里是C:\Users\Diane\Anaconda3\Scripts 将该目 ...

  6. maven学习(十)——maven生命周期以及插件

    一.生命周期 1.何为生命周期? Maven生命周期就是为了对所有的构建过程进行抽象和统一,包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤 2.Maven三大生命周期 Maven有三套 ...

  7. poj1386 字符串类型的一笔画问题 欧拉回路

    Play on Words Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10685   Accepted: 3625 De ...

  8. 我的第一个python程序——猜数字

    #Author:xiaoxiao age = 22 #标准正确答案 counter = 0 #计数器 for i in range(10): #循环10次 if counter < 3: gue ...

  9. 洛谷9月月赛round2

    洛谷9月月赛2 t1 题意:懒得说了 分析:模拟 代码: program flag; var a:..,..]of char; n,i,m,j,x,y,ans,k:longint; begin ass ...

  10. [luoguP2657] [SCOI2009]windy数(数位DP)

    传送门 f[i][j]表示位数为i,第i位为j的windy数的个数 先预处理出f数组. 求的时候先算没有前导0的答案,再算位数和给定的数相同的答案. #include <cmath> #i ...