公司中以前写的导出有问题。原来使用的XML格式字符串拼接然后转化成流输出

action

        public FileResult ExportJobFair()
{
try
{ string name = "t";
int lblx = int.Parse(Request.QueryString["LBLX"]);
string filename = name + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
byte[] excelbyte = new RecruitmentMeeting().ExportJobFair(Request.QueryString["LBLX"]);
return File(excelbyte, @"application/ms-excel", filename); }
catch (Exception)
{
return null;
}
}

XML字符串拼接

    public byte[] ExportJobFair(string lblx)
{
try
{
//生成execl
string name = "招聘会列表";
string muban1 = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><?mso-application progid=\"Excel.Sheet\"?><Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:html=\"http://www.w3.org/TR/REC-html40\" xmlns:dt=\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\"><DocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\"><Author>User</Author><LastAuthor>User</LastAuthor><Created>2017-01-12T03:15:00Z</Created><LastSaved>2017-01-12T03:46:32Z</LastSaved></DocumentProperties><CustomDocumentProperties xmlns=\"urn:schemas-microsoft-com:office:office\"><KSOProductBuildVer dt:dt=\"string\">2052-10.1.0.6135</KSOProductBuildVer></CustomDocumentProperties><ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\"><WindowWidth>28695</WindowWidth><WindowHeight>13050</WindowHeight><ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook><Styles><Style ss:ID=\"s29\" ss:Name=\"链接单元格\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Double\" ss:Weight=\"3\" ss:Color=\"#FF8001\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#FA7D00\"/></Style><Style ss:ID=\"s19\" ss:Name=\"标题 1\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"2\" ss:Color=\"#4472C4\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"134\" ss:Size=\"15\" ss:Color=\"#44546A\" ss:Bold=\"1\"/></Style><Style ss:ID=\"s13\" ss:Name=\"注释\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#B2B2B2\"/><Border ss:Position=\"Left\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#B2B2B2\"/><Border ss:Position=\"Right\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#B2B2B2\"/><Border ss:Position=\"Top\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#B2B2B2\"/></Borders><Interior ss:Color=\"#FFFFCC\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s8\" ss:Name=\"千位分隔\"></Style><Style ss:ID=\"s22\" ss:Name=\"标题 3\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"2\" ss:Color=\"#A2B8E1\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"134\" ss:Size=\"11\" ss:Color=\"#44546A\" ss:Bold=\"1\"/></Style><Style ss:ID=\"s17\" ss:Name=\"标题\"><Font ss:FontName=\"等线\" x:CharSet=\"134\" ss:Size=\"18\" ss:Color=\"#44546A\" ss:Bold=\"1\"/></Style><Style ss:ID=\"s10\" ss:Name=\"超链接\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#0000FF\" ss:Underline=\"Single\"/></Style><Style ss:ID=\"s7\" ss:Name=\"差\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#9C0006\"/><Interior ss:Color=\"#FFC7CE\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s15\" ss:Name=\"标题 4\"><Font ss:FontName=\"等线\" x:CharSet=\"134\" ss:Size=\"11\" ss:Color=\"#44546A\" ss:Bold=\"1\"/></Style><Style ss:ID=\"s5\" ss:Name=\"千位分隔[0]\"></Style><Style ss:ID=\"s24\" ss:Name=\"输出\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#3F3F3F\"/><Border ss:Position=\"Left\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#3F3F3F\"/><Border ss:Position=\"Right\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#3F3F3F\"/><Border ss:Position=\"Top\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#3F3F3F\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#3F3F3F\" ss:Bold=\"1\"/><Interior ss:Color=\"#F2F2F2\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s3\" ss:Name=\"输入\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/><Border ss:Position=\"Left\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/><Border ss:Position=\"Right\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/><Border ss:Position=\"Top\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#3F3F76\"/><Interior ss:Color=\"#FFCC99\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s4\" ss:Name=\"货币\"></Style><Style ss:ID=\"s31\" ss:Name=\"好\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#006100\"/><Interior ss:Color=\"#C6EFCE\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s20\" ss:Name=\"标题 2\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"2\" ss:Color=\"#4472C4\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"134\" ss:Size=\"13\" ss:Color=\"#44546A\" ss:Bold=\"1\"/></Style><Style ss:ID=\"s16\" ss:Name=\"警告文本\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#FF0000\"/></Style><Style ss:ID=\"s1\" ss:Name=\"货币[0]\"></Style><Style ss:ID=\"s30\" ss:Name=\"汇总\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Double\" ss:Weight=\"3\" ss:Color=\"#4472C4\"/><Border ss:Position=\"Top\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#4472C4\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\" ss:Bold=\"1\"/></Style><Style ss:ID=\"s11\" ss:Name=\"百分比\"><NumberFormat ss:Format=\"0%\"/></Style><Style ss:ID=\"Default\" ss:Name=\"Normal\"><Alignment/><Borders/><Font ss:FontName=\"等线\" x:CharSet=\"134\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior/><NumberFormat/><Protection/></Style><Style ss:ID=\"s40\" ss:Name=\"强调文字颜色 4\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#FFC000\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s37\" ss:Name=\"20% - 强调文字颜色 2\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#FCE4D6\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s32\" ss:Name=\"适中\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#9C6500\"/><Interior ss:Color=\"#FFEB9C\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s6\" ss:Name=\"40% - 强调文字颜色 3\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#DBDBDB\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s36\" ss:Name=\"40% - 强调文字颜色 1\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#B4C6E7\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s2\" ss:Name=\"20% - 强调文字颜色 3\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#EDEDED\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s47\" ss:Name=\"40% - 强调文字颜色 6\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#C6E0B4\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s9\" ss:Name=\"60% - 强调文字颜色 3\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#C9C9C9\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s35\" ss:Name=\"20% - 强调文字颜色 1\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#D9E1F2\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s18\" ss:Name=\"解释性文本\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#7F7F7F\" ss:Italic=\"1\"/></Style><Style ss:ID=\"s12\" ss:Name=\"已访问的超链接\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#800080\" ss:Underline=\"Single\"/></Style><Style ss:ID=\"s33\" ss:Name=\"20% - 强调文字颜色 5\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#DDEBF7\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s28\" ss:Name=\"强调文字颜色 2\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#ED7D31\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s14\" ss:Name=\"60% - 强调文字颜色 2\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#F4B084\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s38\" ss:Name=\"40% - 强调文字颜色 2\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#F8CBAD\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s27\" ss:Name=\"20% - 强调文字颜色 6\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#E2EFDA\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s21\" ss:Name=\"60% - 强调文字颜色 1\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#8EA9DB\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s42\" ss:Name=\"40% - 强调文字颜色 4\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#FFE699\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s41\" ss:Name=\"20% - 强调文字颜色 4\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#FFF2CC\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s25\" ss:Name=\"计算\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/><Border ss:Position=\"Left\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/><Border ss:Position=\"Right\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/><Border ss:Position=\"Top\" ss:LineStyle=\"Continuous\" ss:Weight=\"1\" ss:Color=\"#7F7F7F\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#FA7D00\" ss:Bold=\"1\"/><Interior ss:Color=\"#F2F2F2\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s23\" ss:Name=\"60% - 强调文字颜色 4\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#FFD966\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s48\" ss:Name=\"60% - 强调文字颜色 6\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#A9D08E\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s46\" ss:Name=\"强调文字颜色 6\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#70AD47\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s39\" ss:Name=\"强调文字颜色 3\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#A5A5A5\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s26\" ss:Name=\"检查单元格\"><Borders><Border ss:Position=\"Bottom\" ss:LineStyle=\"Double\" ss:Weight=\"3\" ss:Color=\"#3F3F3F\"/><Border ss:Position=\"Left\" ss:LineStyle=\"Double\" ss:Weight=\"3\" ss:Color=\"#3F3F3F\"/><Border ss:Position=\"Right\" ss:LineStyle=\"Double\" ss:Weight=\"3\" ss:Color=\"#3F3F3F\"/><Border ss:Position=\"Top\" ss:LineStyle=\"Double\" ss:Weight=\"3\" ss:Color=\"#3F3F3F\"/></Borders><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#FFFFFF\" ss:Bold=\"1\"/><Interior ss:Color=\"#A5A5A5\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s34\" ss:Name=\"强调文字颜色 1\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#4472C4\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s45\" ss:Name=\"60% - 强调文字颜色 5\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#9BC2E6\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s44\" ss:Name=\"40% - 强调文字颜色 5\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#000000\"/><Interior ss:Color=\"#BDD7EE\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s43\" ss:Name=\"强调文字颜色 5\"><Font ss:FontName=\"等线\" x:CharSet=\"0\" ss:Size=\"11\" ss:Color=\"#CCE8CF\"/><Interior ss:Color=\"#5B9BD5\" ss:Pattern=\"Solid\"/></Style><Style ss:ID=\"s49\"/><Style ss:ID=\"s50\"><Alignment ss:Horizontal=\"Center\"/></Style><Style ss:ID=\"s51\"><Alignment/></Style><Style ss:ID=\"s52\"><Alignment ss:Horizontal=\"Center\"/></Style></Styles><Worksheet ss:Name=\"Sheet2\"><Table ss:ExpandedColumnCount=\"3\" ss:ExpandedRowCount=\"4\" x:FullColumns=\"1\" x:FullRows=\"1\" ss:DefaultColumnWidth=\"54\" ss:DefaultRowHeight=\"14.25\">";
string muban2 = "<Row><Cell ss:StyleID=\"s52\" ss:MergeAcross=\"3\"><Data ss:Type=\"String\">" + name + "</Data></Cell></Row><Row><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">招聘会名称</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">申请截止时间</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">开始时间</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">结束时间</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">地点</Data></Cell></Row>";
string muban3 = "</Table><WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\"><PageSetup><Header x:Margin=\"0.3\"/><Footer x:Margin=\"0.3\"/><PageMargins x:Left=\"0.699305555555556\" x:Right=\"0.699305555555556\" x:Top=\"0.75\" x:Bottom=\"0.75\"/></PageSetup><Selected/><TopRowVisible>0</TopRowVisible><LeftColumnVisible>0</LeftColumnVisible><PageBreakZoom>100</PageBreakZoom><Panes><Pane><Number>3</Number><ActiveRow>0</ActiveRow><ActiveCol>0</ActiveCol><RangeSelection>R1C1:R2C3</RangeSelection></Pane></Panes><ProtectObjects>False</ProtectObjects><ProtectScenarios>False</ProtectScenarios></WorksheetOptions></Worksheet><Worksheet ss:Name=\"Sheet1\"><Table ss:ExpandedColumnCount=\"1\" ss:ExpandedRowCount=\"1\" x:FullColumns=\"1\" x:FullRows=\"1\" ss:DefaultColumnWidth=\"54\" ss:DefaultRowHeight=\"14.25\"/><WorksheetOptions xmlns=\"urn:schemas-microsoft-com:office:excel\"><PageSetup><Header x:Margin=\"0.3\"/><Footer x:Margin=\"0.3\"/><PageMargins x:Left=\"0.699305555555556\" x:Right=\"0.699305555555556\" x:Top=\"0.75\" x:Bottom=\"0.75\"/></PageSetup><TopRowVisible>0</TopRowVisible><LeftColumnVisible>0</LeftColumnVisible><PageBreakZoom>100</PageBreakZoom><ProtectObjects>False</ProtectObjects><ProtectScenarios>False</ProtectScenarios></WorksheetOptions></Worksheet></Workbook>";
if (int.Parse(lblx) == )
{
muban2 = "<Row><Cell ss:StyleID=\"s52\" ss:MergeAcross=\"4\"><Data ss:Type=\"String\">" + name + "</Data></Cell></Row><Row><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">招聘会名称</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">空余展位/总展位数</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">申请截止时间</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">开始时间</Data></Cell><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">结束时间</Data></Cell></Row>";
}
          //查询类型
ZphListParam cs = new ZphListParam();
cs.MYHS = ;
cs.YM = ;
cs.LBLX = lblx;
cs.PXFS = "ASC";
cs.PXZD = "DHMC";
ProcessResult pro = new RecruitmentMeeting().Query(cs);
查询结果列表对象 ZPH = JsonHelper.JsonDeserialize<查询结果列表对象>(pro.ResultJson);
IList<ZhaopinhuiJson4Query> rows = ZPH.Result.rows;
if (ZPH.IsOK == true && rows.Count > )
{
//序号
for (int i = ; i < rows.Count; i++)
{
muban2 += "<Row><Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + Common.DecodeString(rows[i].DHMC) + "</Data></Cell>";
if (int.Parse(lblx) == )
{
muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + rows[i].KYZW + "/" + rows[i].ZZWS + "</Data></Cell>";
//muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + rows[i].SQJSSJ + "</Data></Cell>";
muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + rows[i].KSSJ + "</Data></Cell>";
muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"Number\">" + rows[i].JSSJ + "</Data></Cell></Row>";
}
else
{
//muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + rows[i].SQJSSJ + "</Data></Cell>";
muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + rows[i].KSSJ + "</Data></Cell>";
muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + rows[i].JSSJ + "</Data></Cell>";
muban2 += "<Cell ss:StyleID=\"s51\"><Data ss:Type=\"String\">" + Common.DecodeString(rows[i].DZ) + "</Data></Cell></Row>";
}
}
}
string xmldata = muban1 + muban2 + muban3;
byte[] xmlbytes = Encoding.Default.GetBytes(xmldata);
return xmlbytes;
}
catch (Exception)
{
return null;
}
}

数据库语句执行完返回的数据类型

    public class ProcessResult
{
/// <summary>
/// 调用是否成功
/// </summary>
public Boolean IsOK { get; set; } /// <summary>
/// 调用是否成功的文字描述
/// </summary>
public String Message { get; set; } /// <summary>
/// 调用返回对象
/// </summary>
public Object ResultObj { get; set; } /// <summary>
/// 调用返回值的JSON表示
/// </summary>
public String ResultJson { get; set; } /// <summary>
/// 获取与设置表格字段名
/// </summary>
public string[] Head { get; set; } /// <summary>
/// 表格标题
/// </summary>
public string[] HeadText { get; set; } /// <summary>
/// 标题列宽
/// </summary>
public int[] HeadWidth { get; set; } /// <summary>
/// 调用受影响的数据行数
/// 对于查询语句,返回符合查询条件的总行数
/// 对于修改语句,返回被更新的数据的总行数
/// </summary>
public int RowCount { get; set; } public int Total { get; set; } /// <summary>
/// 构造函数
/// </summary>
/// <param name="ok">调用是否成功</param>
/// <param name="msg">调用是否成功的文字描述</param>
/// <param name="obj">调用返回对象</param>
/// <param name="json">调用返回值的JSON表示</param>
/// <param name="count">调用受影响的数据行数</param>
public ProcessResult(bool ok, string msg, object obj, string json, int count)
{
IsOK = ok;
Message = msg;
ResultObj = obj;
ResultJson = json;
RowCount = count;
} public ProcessResult()
{
}
}

然后发现生成的XML返回EXCEL 程序不认,office excel和WPS均无法打开。提示文件损坏,只能选择重写

因为涉及的地方比较多,时间也比较充裕于是写了一个简单是帮助类

(提示:项目需要引用 Microsoft.Office.Interop)

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;namespace Utility
{
public class ExcelHelper
{
/// <summary>
/// DataTable导出excel
/// 返回保存的地址
/// </summary>
/// <param name="datas">数据源</param>
/// <param name="p">保存路径</param>
/// <returns></returns>
public static string DataTableToExcel(DataTable datas, string p)
{
Microsoft.Office.Interop.Excel.Application app =
new Microsoft.Office.Interop.Excel.Application();
try
{
app.Visible = false;
Microsoft.Office.Interop.Excel.Workbook wBook = app.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Worksheet wSheet = wBook.Sheets[];
wSheet.Name = "shhel";
if (datas.Rows.Count > )
{
int row = datas.Rows.Count;
int col = datas.Columns.Count;
for (int i = ; i < row; i++)
{
for (int j = ; j < col; j++)
{
string str = "-";
if (datas.Rows[i][j].Equals(float.NaN) == false)
{
str = datas.Rows[i][j].ToString(); }
wSheet.Cells[i + , j + ] = str;
}
}
} int size = datas.Columns.Count;
for (int i = ; i < size; i++)
{
wSheet.Cells[, + i] = datas.Columns[i].ColumnName;
}
//列自适应
wSheet.Columns.EntireColumn.AutoFit();
//设置禁止弹出保存和覆盖的询问提示框
app.DisplayAlerts = false;
app.AlertBeforeOverwriting = false;
//保存工作簿
//wBook.Save();
wSheet.SaveAs(p);
wBook.Close();
//保存excel文件
//app.Save(filePath);
//app.SaveWorkspace(filePath);
app.Quit();
GC.Collect();
}
catch (Exception)
{ //强制结束excel进程
IntPtr t = new IntPtr(app.Hwnd); }
return p;
} /// <summary>
/// 泛型集合转DataTable
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="items"></param>
/// <returns></returns>
public static DataTable ToDataTable<T>(IList<T> items)
{
if (items==null)
{
return null;
}
var tb = new DataTable(typeof(T).Name); PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo prop in props)
{
tb.Columns.Add(prop.Name);
} foreach (T item in items)
{
var values = new object[props.Length]; for (int i = ; i < props.Length; i++)
{
values[i] = props[i].GetValue(item, null);
} tb.Rows.Add(values);
} return tb;
}
}
}

写好后的Action调用

        public FileResult ExportJobFairExcel()
{
try
{ string name = "招聘会列表";
int lblx = int.Parse(Request.QueryString["LBLX"]); string filename = name + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
DataTable dt = new RecruitmentMeeting().ExportJobFairDatatable(Request.QueryString["LBLX"]);
string strdate = DateTime.Now.ToString("yyyyMMddhhmmss");
string str = Server.HtmlEncode(Request.PhysicalApplicationPath).ToString() + "File\\Excel\\" + filename;
string file = Utility.ExcelHelper.DataTableToExcel(dt, str);
return File(file, "application/vnd.ms-excel", filename);
}
catch (Exception)
{
return null;
}
}

其中时间格式算个坑吧,第一次导出的时候时间无转换,导出的excel打开时间的列都是#####,

        public DataTable ExportJobFairDatatable(string lblx)
{
try
{
//生成execl
string name = "招聘会列表"; ZphListParam cs = new ZphListParam();
cs.MYHS = ;
cs.YM = ;
cs.LBLX = lblx;
cs.PXFS = "ASC";
cs.PXZD = "DHMC";
ProcessResult pro = new RecruitmentMeeting().Query(cs);
招聘会查询结果列表对象 ZPH = JsonHelper.JsonDeserialize<招聘会查询结果列表对象>(pro.ResultJson);
IList<JobFair> rows = new List<JobFair>();
foreach (ZhaopinhuiJson4Query item in ZPH.Result.rows)
{
JobFair jf = new JobFair();
            //Common.DecodeString方法是用于加密后的数据解码的
jf.招聘会名称 = Common.DecodeString(item.DHMC);
jf.开始时间 = Convert.ToDateTime(item.KSSJ).Year + "年" + Convert.ToDateTime(item.KSSJ).Month + "月" + Convert.ToDateTime(item.KSSJ).Day + "日";
jf.结束时间 = Convert.ToDateTime(item.JSSJ).Year + "年" + Convert.ToDateTime(item.JSSJ).Month + "月" + Convert.ToDateTime(item.JSSJ).Day + "日"; jf.地点 = Common.DecodeString(item.DZ);
rows.Add(jf);
} DataTable dt = ExcelHelper.ToDataTable<JobFair>(rows);
if (int.Parse(lblx) == )
{
dt.Columns.Add("空余展位/总展位");
for (int i = ; i < ZPH.Result.rows.Count; i++)
{
dt.Rows[i]["空余展位/总展位"] = ZPH.Result.rows[i].KYZW + "/" + ZPH.Result.rows[i].ZZWS;
}
}
return dt;
}
catch (Exception)
{
return null;
}
}
    /// <summary>
/// 公共招聘会导出模型
/// </summary>
public class JobFair
{
/// <summary>
/// 招聘会名称
/// 使用前需解码
/// </summary>
public string 招聘会名称 { get; set; } /// <summary>
/// 开始时间
/// yyyy-MM-dd HH:mm:ss
/// </summary>
public string 开始时间 { get; set; } /// <summary>
/// 结束时间
/// yyyy-MM-dd HH:mm:ss
/// </summary>
public string 结束时间 { get; set; } /// <summary>
/// 地址
/// 使用前需解码
/// </summary>
public string 地点 { get; set; } }

实际上如果直接用datatable会更快一点,但是因为其他地方也用到了所以为了节约时间直接进行了2次转换。

如果有需要的可以直接把导出的excel文件的方法重载一下。

MVC中FileResult 返回类型返回Excel的更多相关文章

  1. CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html、Ajax”(是否缺少程序集引用?)

    从SVN上down下来的程序,编译报了一大堆的错,发现是缺少引用,但是明明引用了,后来打开引用,发现system.web.mvc这个引用打着叹号,如图: 后来重新引用了本机的system.web.mv ...

  2. (转) CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

    从SVN上down下来的程序,编译报了一大堆的错,发现是缺少引用,但是明明引用了,后来打开引用,发现system.web.mvc这个引用打着叹号,如图, 后来重新引用了本机的system.web.mv ...

  3. 解决命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)

    解决命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?) 1.右击引用中的System.Web.MVC,点击“属性” 把"复制本地" ...

  4. 如何在.NET MVC中使用jQuery并返回JSON数据

    http://blog.csdn.net/dingxingmei/article/details/9092249 开始实践 - jQuery端 假设我们要从服务器端获取一个文章列表,并把文章条目显示在 ...

  5. [转]如何在.NET MVC中使用jQuery并返回JSON数据

    本文转自:http://blog.sina.com.cn/s/blog_48e42dc90100xp1p.html 二.开始实践 - jQuery端 假设我们要从服务器端获取一个文章列表,并把文章条目 ...

  6. 命名空间“System.Web.Mvc”中不存在类型或命名空间“Ajax”(是否缺少程序集引用?)

    原文  http://www.cnblogs.com/LJP-JumpAndFly/p/4109602.html 好吧,非常激动的说,这个问题搞了我一个晚上,网上的帖子太少了,好像不超过2篇,而且说得 ...

  7. Spring MVC 中 AJAX请求并返回JSON

    一.以ModelAndView的方式返回 先看下JavaScript代码: /** * 保存-同步(版本控制库) */ function saveSynchronizedVcHorse(obj) { ...

  8. ASP.NET MVC中ActionResult的不同返回方式

    1.返回视图 return View();//返回方法名对应的视图 return View("aaa");//返回名称为aaa的视图 2.返回文本内容 return Content ...

  9. springboot中关于Long类型返回前端精度丢失问题处理

    使用了HuTool这个雪花算法后,会出现丢失精度的问题 hutool算法使用地址 对于一些大的业务表,自增主键这里 接口层得注意下是否会产生大数值 设计接口的时候采用String类型. 在项目中,我们 ...

随机推荐

  1. unable browse url when InfoPath Convert to Connection File

    You must actived the windows feature "Desktop Experience" on the server : http://blogs.tec ...

  2. python 使用跨平台文件锁

    #encoding=utf-8 print '中国' #使用跨平台文件锁 import os if os.name == 'nt': import win32con,win32file,pywinty ...

  3. 对Java意义重大的7个性能指标

      本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序现在,让我们看看这些性能指标,并了解如何查看并收集它们.: 一,响应时间和吞吐量 根据应用程序的响应时间可以知道程序完 ...

  4. KVM虚拟环境安装

    关闭防火墙 linux 半虚拟化是不能运行与安装KVM虚拟机的. #egrep '(vmx|svm)' --color=always /proc/cpuinfo yum -y install kvm ...

  5. Ubuntu的中文乱码问题

    目标:使系统/服务器支持中文,能够正常显示. 1.首先,安装中文支持包language-pack-zh-hans: $ sudo apt-get install language-pack-zh-ha ...

  6. nginx高性能WEB服务器系列之三版本升级

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  7. ajax 常用格式

    $.ajax({ url: "/", //请求路径 type: "post",//请求方式 data: "json", //发送请求的数据格 ...

  8. &与&& ,|与||的区别

    &&和||是短路运算符,&和|是非短路运算符 &&与& 区别:两者都表示“与”运算,但是&&运算符第一个表达式不成立的话,后面的表达式不 ...

  9. 解决php -v查看到版本于phpinfo()打印的版本不一致问题

    https://blog.csdn.net/haif_city/article/details/81315372 整个事件的起因是这样的 通过git拉取laraevl项目发现缺少.env文件,打算使用 ...

  10. mysql语句插入前判断数据是否重复

    在mysql中插入数据有时需要判断数据插入是否重复 语句编写:insert into 表(相应字段) select 相应字段 from dual where not exists (select 相应 ...