Tag: asp.net mvc 4

如何向Grid.Mvc添加导出function,以便将当前search结果导出为Excel?

关于这个问题有几个问题https://stackoverflow.com/questions/23498689/handle-a-pre-filtered-list-with-grid-mvc和grid.mvc在控制器中使用过滤结果,但没有答案。 我正在使用MVC 4 Grid.MVC的基本示例 @using GridMvc.Html @Html.Grid(Model,"_MyCustomGrid").Columns(columns => { columns.Add(foo => foo.Title).Titled("Custom column title").SetWidth(110); columns.Add(foo => foo.Description).Sortable(true); }).WithPaging(20) 其中创build一个看起来像这样的网格 – 一旦用户过滤网格中的数据,我希望他们能够导出到Excel。 我已经阅读了源代码,但是我看不到可以插入的事件。

通过点击button将SQL查询的结果保存到Excel文件中

我有一个Asp.Net MVC Web应用程序,其中一个网页链接EXPORT运行一个C#函数,它具有一个SQL查询并将数据导出到Excel文件并保存在本地计算机上。 一旦保存操作完成,它应该返回到pipe理页面,由于某种原因,它不这样做,并返回到一个空的页面 我在控制器中有以下代码 [Authorize(Roles = "Admin")] public ActionResult ExportWBData() { sqlcon.Open(); string strGetAllWBData = @"select Product, Term, BidVolume, BidCP as BidCounterParty, Bid, Offer, OfferCP as OfferCounterParty, OfferVolume from CanadianCrudes"; SqlCommand cmdGetAllWBData = new SqlCommand(strGetAllWBData, sqlcon); DataTable dtGetAllWBData = new DataTable(); SqlDataAdapter daGetAllWBData = new SqlDataAdapter(); daGetAllWBData.SelectCommand = cmdGetAllWBData; daGetAllWBData.Fill(dtGetAllWBData); sqlcon.Close(); Microsoft.Office.Interop.Excel._Application app = […]

从数据库导出Excel文件

我正在寻找如何在ASP.NET MVC应用程序中从SQL Server生成XLS(XLSX)文件。 现在我使用EPPlus执行SQL查询,并将结果保存到xlsx库中。 在这种情况下,我有性能问题。 如果我有这么多的数据,世代时间更长(平均150秒左右,大约10秒,时间也长)。 第一个想法是执行查询,返回XML,然后通过xslt模板转换为xls,但在这里,我通过Excel打开问题(格式和扩展名不匹配)。 第二个想法是执行查询,从数据库返回XSL(或XSLX),但我不知道如何做,因为文件保存在服务器上,我不知道如何发送到客户端下载。 第三个想法你有没有人遇到类似的问题,你能帮我吗? 感谢您的任何想法。 //编辑这里是我的代码的简短的例子: int row = 0; foreach(var obj1 in objList1) { WriteObj1(ref row, obj1); var objList2 = GetObj2(obj1.Id); foreach(var obj2 in objList2) { WriteObj2(ref row, obj2); var objList3 = GetObj3(obj2.Id); foreach(var obj3 in objList3) { WriteObj3(ref row, obj3); var objList4 = GetObj4(obj3.Id); foreach(var obj4 in objList4) […]

链接在Excel中会导致重复的调用

问题的背景 在我的ASP.net MVC4networking应用程序中,我们允许用户在Excel工作簿中下载数据,其中一个单元格包含指向报告页面的超链接。 我们准备链接,当用户点击Excel中的链接时, ReportController被参数调用,处理请求并返回一个报告摘要视图,即.cshtml页面。 一切正常… 我使用SpreadSheetGear生成链接的代码片段生成Excel: rrid = (int.TryParse((string) values[row][column], out outInt) ? outInt : 0); worksheet.Hyperlinks.Add(worksheet.Cells[row + 1, column], PrepareProspectProfileLink((int) rrid, downloadCode), string.Empty, "CTRL + click to follow link", rrid.ToString(CultureInfo.InvariantCulture)); 问题 我只注意到,当我点击链接在Excel中,相同的请求被发送到Web服务器两次。 分析 我使用Fiddler进行了检查,并在应用程序代码中放置了一个断点,并确认请求确实发送了两次。 在提琴手,在进程栏下,我发现第一个请求来自“excel:24408”,第二个请求来自“chrome:4028”。 另外,如果我在Outlook中复制粘贴链接,它只调用一次请求。 我明白这一点,第一个请求是由excel调用的,当excel与html服务时,它不知道如何呈现它,因此将请求切换到我的系统上的默认网页浏览器。 现在,Chrome会触发相同的请求,并在接收HTML时打开HTML页面。 题 我怎样才能阻止这种行为? 它会给Web服务器带来不必要的负担。 其次,当我审计用户行为,我得到两个条目:(

使用reflection过滤/删除EF5导航属性

我有下面的代码来获得通过的所有通用实体的属性。我认为这样的属性将成为一个excel报告的伟大标题。 但是当我使用它时,我得到了一些“导航”属性。 我想过滤它们,因为他们搞乱了报告。 这里是一些代码… DataTable dataTable = new DataTable(typeof(TEntity).Name); //Get properties / field names PropertyInfo[] Props = typeof(TEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance); //Add props to datatable foreach (PropertyInfo prop in Props) dataTable.Columns.Add(prop.Name); 所以代码继续将其他行添加到数据表中,然后我使用它将数据发送到出色的NPOI免费的Excel导出工具。 有理想的BindingFlags属性,将允许我忽略这些东西 | !BindingFlags.Navigation 我也不一定需要其他2,因为我看到它们似乎有或没有他们相同的细节。 如果没有BindingFlags属性,有没有办法扩展它。 如果没有,那么有没有其他的标准方法可靠地检测它们,所以我可以过滤掉它们。 我听说其中一些包含“导航”作为前缀,或几乎总是虚拟的,但虽然我的虚拟似乎“几乎”部分担心我。 这就是为什么我不想做这样的事情: PropertyInfo[] Props = typeof(TEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(p => !p.GetGetMethod().IsVirtual && !p.GetGetMethod().IsFinal).ToArray(); 不过,我没有“导航”的前缀,我可以看到,但如果他们这样做,我不相信这也会给我正确的方式。 也许我对上述两个人是错误的,或者没有在正确的地方寻找。 我也完成了一些生成连接到repo的“ViewModel”的行,以从模型中获取数据并填充ViewModel。 然后发送到我的报告引擎。 这似乎更灵活,因为我可以使用它有点像预览如果我附加一个视图。 这听起来像正确的路要走吗? […]

如何在Excel Interlop c#MVC中提示保存为文本框4

我想用Excel Interloop导出我的Excel表格… 我有一个数据表,我将其转换为Excel表格… 现在有没有办法使用MVC 4中的保存对话框保存文件 在这里我的代码 public string DataTableToExcel(DataTable dt, string htmlHeading, string key) { try { Microsoft.Office.Interop.Excel.Application excel; Microsoft.Office.Interop.Excel.Workbook excelworkBook; Microsoft.Office.Interop.Excel.Worksheet excelSheet; Microsoft.Office.Interop.Excel.Range excelCellrange; excel = new Microsoft.Office.Interop.Excel.Application(); excel.Visible = false; excel.DisplayAlerts = false; excelworkBook = excel.Workbooks.Add(Type.Missing); excelSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelworkBook.ActiveSheet; excelSheet.Name = "Sheet1"; DataSet new_ds = new DataSet(); DataTable dtCopy = dt.Copy(); new_ds.Tables.Add(dtCopy); foreach […]

openxml sdk excel文件打开closures公式单元格在Windows Azure网站上重新计算

我的asp.net mvc运行在Windows云端的windows azure网站上。 我有基于input的计算公式,基于input的单元格和基于另一个单元格的Excel单元格。 我能够使用开放的XML SDK SDK C#代码来成功地在我的本地开发机器上执行以下操作。 将input值传递给input单元格并保存工作表。 使用Microsoft.Office.Interop.Excel.Application对象打开和closuresexcel文件 var excelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = excelApp.Workbooks.OpenXML(Path.GetFullPath(filename)); workbook.Close(true); excelApp.Quit(); 阅读公式单元格和计算的值。 现在的问题 我需要在Windows Azure网站上部署,我不想部署Microsoft Excel应用程序。 如何使用Microsoft.Office.Interop.Excel.Application对象执行步骤2 ,以便我不必在Windows Azure网站云上安装Excel 。 我必须做第二步为了Excel公式单元格重新计算基于公式。 我已经尝试删除单元格,并且不能以编程方式阅读公式单元格。

.Net C#MVC中打开下载的excel文件后,文件名更改

我想在我的C#.Net MVC应用程序中导出数据为Excel。 我在Actionresult使用了return file() 。 该文件已成功返回并下载。 但打开文件时出现错误,打开文件名时会发生变化。 下载的文件名是ExportFilterCRMdoctorRequest.xls但打开后更改为Book1 。 导出文件的代码: public ActionResult ExportFilterCRMdoctorRequest() { var stream = new MemoryStream(); var serializer = new XmlSerializer(typeof(List<CDRFilterCRMDoctorRequest>)); //We load the data List<CDRFilterCRMDoctorRequest> data = (List<CDRFilterCRMDoctorRequest>)Session["filterCRMRequestList"]; //Retriving data from Session //We turn it into an XML and save it in the memory serializer.Serialize(stream, data); stream.Position = 0; //We return […]

如何在vb.net中使用MVC 4中的控制器创build并返回Excel文件?

我正在使用ExcelLibrary 在这里input链接描述,因为我不想安装Microsoft Office Excel(microsoft.interop.office.excel) Public Function ObtenerExcel() As ActionResult Dim workbook As New Workbook() Dim worksheet As New Worksheet("Sheet1") worksheet.Cells(5, 5) = New Cell(999999) worksheet.Cells(10, 10) = New Cell(12354) workbook.Worksheets.Add(worksheet) Dim stream As New System.IO.MemoryStream workbook.SaveToStream(stream) stream.Position = 0 Dim buffer(4096) As Byte stream.Read(buffer, 0, buffer.Length) Return File(buffer, "application/vnd.ms-excel", "mytestfile.xls") End Function 此代码返回一个excel文件,但是当我尝试打开这个文件时,它显示一个错误消息(Excel在'text.xls'中发现了不可读的内容。你想恢复这个工作簿的内容吗?如果你相信此工作簿,单击是。),它不显示任何内容。 我在Windows 8.1(64位)和Microsoft […]

保存上传到azurewebsite上的文件

在我的本地机器上一切正常,但.. 发布我的MVC4 web项目后,上传的Excel文件有问题。 我加载一个HttpPostedFileBase并将path发送给我的BL。 在那里我加载到dataTable和我的第二个电话,我把它list 。 这是代码 控制器: [HttpPost] public ActionResult UploadCards(HttpPostedFileBase file, string sheetName, int ProductID) { try { if (file == null || file.ContentLength == 0) throw new Exception("The user not selected a file.."); var fileName = Path.GetFileName(file.FileName); var path = Server.MapPath("/bin"); if (!Directory.Exists(path)) Directory.CreateDirectory(path); path = Path.Combine(path, fileName); file.SaveAs(path); DataTable cardsDataTable = […]