Tag: memorystream

如何通过C#将图像从URL添加到Excel工作表

这是目标: 1)从URL获取图像,在这种情况下,Google静态地图API 2)将此图像插入到Excel工作表中。 如果我必须创build(或使用现有的)形状并将背景设置为图像,那我可以。 我也可以插入特定的单元格。 我可以通过Google静态地图API(请参阅上面的URL)定义图片大小,以便始终知道。 我没有完全清楚如何做到这一点,而不是直接将文件保存到文件系统。 我目前有这样的代码获取图像的MemoryStream格式: public static MemoryStream GetStaticMapMemoryStream(string requestUrl, string strFileLocation) { try { HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { if (response.StatusCode != HttpStatusCode.OK) throw new Exception(String.Format( "Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription)); using (BinaryReader reader = new BinaryReader(response.GetResponseStream())) { Byte[] lnByte […]

用内存stream从URL中读取Excel

我正在上传一个Excel文件到Azure,我正在关注这个 URL。 现在我必须阅读这个excel文件的URL(我不想下载它)。 我正在这样做 var webRequest = HttpWebRequest.Create("url_of_excel_in_Azure") as HttpWebRequest; var webResponse = webRequest.GetResponse(); using (var webResponseStream = webResponse.GetResponseStream()) using (var memoryStream = new MemoryStream()) { webResponseStream.CopyTo(memoryStream); using (var excelPackage = new ExcelPackage(memoryStream)) { var value = excelPackage.Workbook.Worksheets.First().Cells[1, 1].Value; } } 我有一个特定的格式为Excel,即它将只有4列,但多行,从上面的代码,我可以访问第一行的第一列值,我如何应用循环这些单元格读取4列中的所有行。 如果我写 excelPackage.Workbook.Worksheets.First().Cells.Count() 这是给我的所有列,包括哪些是空白的计数。 我可以跳过这个上传function,因为我只需要从张贴的文件创buildDataTable,如果有人可以build议如何从张贴的文件创builddatatable,而不需要上传它,这也会很好。 这是我的Excel的格式

将Excel转换为Memory Stream并通过AngularJS进行下载

我想在C#中dynamic创build一个Excel文件,我需要将它作为可下载的AngularJS HTMLbutton单击。 我提到以下链接来dynamic创buildExcel http://www.increvcorp.com/manipulating-excel-spreadsheet-using-c/ 这工作正常。 但它将文件保存在本地存储中 xlWorkBook.SaveAs("D:\\Mobile_List.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 我再提到一个post,他们给出了从工作簿直接转换到记忆stream的想法 – 将excel工作簿转换为字节[] 。 但是,在那个post里他们用了 MemoryStream m = new MemoryStream(); workbook.SaveToStream(m); 我无法在我的工作簿中find方法SaveToStream ,它显示一个错误 “Microsoft.Office.Interop.Excel.Workbook”没有包含“SaveToStream”的定义,并且没有find接受“Microsoft.Office.Interop.Excel.Workbook”types的第一个参数的扩展方法“SaveToStream”缺less使用指令或程序集引用?) 我怎么能把它作为内存stream,并通过点击HTMLbutton发回给AngularJS下载? 我再提到一个postAngularJS $ http-post – 将二进制文件转换为excel文件和下载 – 它纯粹地解释了angularJS部分和PHP。 C#没有解释,这是我发布这个问题的主要原因。 请帮助我… 注意:不要从本地存储转换它…

如何从数据表中创build多个Excel文件,并使用dotnet zip在asp.net中以zip格式下载它们

我正在编写一个程序,通过它我必须下载一个包含多个Excel文件的压缩文件,比如a.xls,b.xls等 我正在使用FOR循环来获取数据中的数据。 现在我想用这个数据导出Excel文件作为压缩文件。 下面是我正在使用的代码,并试图使用内存stream来完成这一点: string[] filetype = { "A", "B", "C", "D", "F", "G", "H" }; using (var db = new WOFFEntities()) { for (int i = 0; i < filetype.Length; i++) { string strFileType = Convert.ToString(filetype[i]); var str = db.EXPORTROCFILEREPORTs.Where(x => x.MONTHYEAR == monthYear && x.FILETYPE == strFileType).ToList(); DataTable dtExcel = new DataTable(); DataColumn […]

如何使用封闭的xml将创build的excel文件转换为字节格式

您好我使用的是用于导出到Excel的closedxML DLL我有如下所示的静态方法 public static void WriteToExcel(string fileName, List<CP> pages) { var wb = new XLWorkbook(); byte[] file; var ws = wb.Worksheets.Add("CPs"); WriteCostHeader(ws); ////write all the header columns //for (int i = 0; i < pages.Count; i++) int iRow = 2; foreach(var page in pages) { WriteCostPage(ws, page, iRow++); WriteCostItemHead(ws, iRow++); foreach(var item in page.Items) { […]

通过AJAX MVC下载Excel文件,而不用在ASP.Net/C#服务器上保存文件

我阅读了陆build在这个链接上的build议 通过AJAX MVC下载Excel文件 我非常喜欢他的想法,我可以避免潜在的保存电子表格的两个副本。 或者不必担心在AJAX调用返回之前删除保存在服务器上的初始文件。 因此,如果我将电子表格保存为内存stream,并将其插入到唯一的cachingvariablescache_uniq1中并在AJAX调用中返回该variables,那么我将如何打开该stream? 我可以做window.open吗? $.ajax({ type: 'POST', url: '/Reports/Somepage.aspx', data: '{ "dataprop1": "test", "dataprop2" : "test2" }', //contentType: 'application/json; charset=utf-8', //dataType: 'json', success: function (returnValue) { //window.location = /Reports/Download?file=' + returnValue; // //NOTE: Instead the returnValue = cache_uniq1 which is the unique Cache //variable name that holds the Excel spreadsheet as a […]

System.OutOfMemoryException写入Excel时

Public Function GenerateReportAsExcel() Dim workbook = WorkbookFactory.Create(template) template.Close() Dim worksheet = workbook.GetSheetAt(0) // Writing record to worksheet Dim workbookStream = New MemoryStream() workbookStream.Flush() workbookStream.Position = 0 workbook.Write(workbookStream) //throws error if the rocord is more then 500000…runs fine for 400000 Return New MemoryStream(workbookStream.ToArray()) End Function WorkbookFactory正在使用NPOI.SS.UserModel …. 有没有办法增加内存stream的容量? 我得到System.OutOfMemoryException写入500000logging到Excel,但高达400000logging工作正常。 我发现了几个类似的问题,但没有得到任何固体解决这个问题…有人build议使用 workbookStream.Flush()workbookStream.Position = 0,但没有任何帮助…. 感谢您的关注..

当从MemoryStream返回时,ASP.net MVC ActionResult破坏了excel文件

我有我的控制器内的以下行动 public ActionResult DownloadExcel() { //create and populate Excel file here C1XLBook testBook = new C1XLBook(); //populate it here MemoryStream ms = new MemoryStream(); testBook.Save(ms, FileFormat.Biff8); return File(ms, "application/ms-excel", "test-file.xls"); } 当打开文件时,我得到Excel消息说文件与扩展名不匹配,文件打开损坏。 如果我将文件保存在硬盘上,并从那里返回,一切都很好: return base.File(@"C:\LOGS\test-file.xls", "application/ms-excel", "test-excel.xls"); 我最初认为Save函数在将它保存到MemoryStream中时会损坏它,所以我保存并重新加载它,并且很好地传回给用户 – 当保存在Hard Drive上并从那里返回时,而不是从的MemoryStream 有任何想法吗? 我不太喜欢将文件保存在硬盘驱动器….除此之外,我应该能够将它保存到MemoryStream并从那里返回? 我有一个预感是可能不应该使用MemoryStream在MVC中返回文件,因为每个请求都是孤立的?