Tag: asp.net

excel interop无法在多次调用后启动服务器exception

我有一个asp.net MVC Web应用程序谁使用Excel互操作在Excel中打开CSV文件保存为XLSX的文件,并从该文件加载字节。 这些字节然后作为下载传递。 到目前为止,一切都按预期工作 但在6下载后,我得到以下例外。 不幸的是,这是在德国,因为服务器是在德国安装。 但是exception消息类似于“80080005启动服务器失败”。 Die COM-Klassenfactory für die Komponente mit CLSID {00024500-0000-0000-C000-000000000046} konnte aufgrund des folgenden Fehlers nicht abgerufen werden: 80080005 Starten des Servers fehlgeschlagen (Ausnahme von HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, […]

如何从aspx网页下载excel文件

我正在尝试从aspx网页获取从数据库以字节存储的excel文件,并下载并以.xls格式打开,但该文件正在以.aspx格式下载。 如何解决这个问题? 我试过了: private void download(DataTable dt) { if (dt.Rows.Count > 0) { Byte[] bytes = (Byte[])dt.Rows[0]["xyz"]; Response.Buffer = true; Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "application/vnd.ms-excel"; Response.BinaryWrite(bytes); // Response.Flush(); Response.End(); } }

从Excel列获取指数值

我创build了一个函数,读取Excel表格所以有一个字段在Excel中包含值为0.01,但是当我读取这个值时,它变成了一些像这样的指数forms1.2999999999999999E-2所以它抛出exception,当我传递数据表值。 所以我如何读取准确的值或避免在代码中。 这里是我的代码阅读Excel表 – using (var sDoc = SpreadsheetDocument.Open(FileName, false)) { bool emptyTable = false; var sheets = sDoc.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>(); var relationshipId = sheets.First().Id.Value; var worksheetPart = (WorksheetPart)sDoc.WorkbookPart.GetPartById(relationshipId); var workSheet = worksheetPart.Worksheet; var sheetData = workSheet.GetFirstChild<SheetData>(); var rows = sheetData.Descendants<Row>().Skip(IgnoreRows).ToList(); if (rows.Count == 0) { Results = dt; emptyTable = true; } if (!emptyTable) { foreach […]

Excel空字段

我需要根据Excel中的字段更新数据库,但是我需要检查一列中的5行是否为空,然后停止更新数据库。 foreach (var sheets in workbook.Worksheets) { SqlCommand comm = new SqlCommand(query, conn); comm.CommandType = System.Data.CommandType.Text; var start = sheets.Dimension.Start; var end = sheets.Dimension.End; for (int i = start.Row + 1; i < end.Row; i++) { object columnE = sheets.Cells[i, 4].Value; string aa = columnE.ToString(); if (aa.StartsWith("E") && aa.EndsWith("ETO")) { comm.Parameters.AddWithValue("@columnE", columnE); object columnB = […]

如何使用closedxml将多个数据表添加到一个工作表?

我有多个数据表与数据,我想要在单张表中添加空格。 我正在使用ClosedXML来开发导出excel实用程序。

创buildEXCEL并打开它

我正在创build一个excel文件,我必须立即打开它。 显然,当我在本地创build它,我可以得到的文件,但是当我在IIS上发布我的Web应用程序这不工作,因为我想它是在服务器端创build… 所以我创build的Excel文件,并尝试上传到服务器,然后下载它,但我不能创build它,如果我在本地运行这个工作,但是当我发布不工作。 有什么build议? 这是我的代码: 我使用这个Excel的库: using Microsoft.Office.Core; using Excelo = Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop; using System.Reflection; using System.Globalization; 然后,我开始我的Excel文件: private void sacConsulPend_GenRemito() { // DB string conn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; DataSet dsRemito = new DataSet(); DataTable dtCons = new DataTable(); using (SqlConnection sqlCon = new SqlConnection(conn)) { using (SqlCommand cmd = new SqlCommand()) { try { […]

在ASP.NET的64位Windows平台上将Excel文件导入SQL Server的最佳方法是什么?

在64位Windows系统上将Excel文件导入到SQL Server的最佳/最stream畅的解决scheme是什么? 我特别的是从ASP.NET / C#页面导入Excel 97-2003文件到SQL 2005数据库。 导入数据会要求用户使用“模板”,所以数据看起来每次都是一样的。 以前系统使用Microsoft Jet OleDb 4.0进行这种导入,但是现在它已经转移到64位环境。 我知道Jet可以运行在64位,如果IIS运行在32位模式,但在我看来不是一个选项。 那么,这里有什么64位的替代品?

FormView到Excel – 如何从模板中的控件拉出数据放置在单元格中

这里是布局,我有一个从SQL服务器进来的dynamic数据的FormView控件。 我正在使用FormView的ReadOnly模式。 我怎样才能调整PrepareFormViewForExport方法来删除文本框,并保留FormView中的值? 现在输出显示标签,但从文本框中删除值。 这是单击导出button时的C#代码。 protected void Bexport_Click(object sender, EventArgs e) { //Clear the Response object Response.Clear(); //set Response header to the Excel filename required (.xls for excel, .doc for word) Response.AddHeader("content-disposition", "attachment;filename=ReportOuput.xls"); Response.Charset = ""; // If you want the option to open the Excel // file without the save option then un-comment out […]

从asp.net / C#网页调用一个VB脚本

我已经写了一个C#的ASP.NET网页,后面运行一个现有的VB脚本。 这个想法是,用户使用网页上传Excel电子表格(.xls),C#对文件(文件types,文件名等)进行一些基本检查,然后将.xls保存到networking位置。 然后,C#将.xls的networkingpath传递给vb脚本,该脚本从.xls获取所需的信息以创build一个.csv文件。 最后将.csv传递到存储过程并上传到数据库表中。 问题是,当我在我的机器上本地运行网页时,所有这些都运行良好。 但是,当我上传页面到networking服务器似乎并没有执行VB脚本; 而只是坐在那里等待脚本退出。 一些快速信息: Excel安装在Web服务器上 该网站设置为执行脚本和可执行文件 该脚本目前被设置为'运行'我的个人域名login(这已经改变),这是在networking服务器上的pipe理员 如果我使用cmd提示符在web服务器上运行该脚本,它将起作用 我真的很感激什么可能会出错的任何想法…认真,我把我的头发放在这一个,并会考虑任何想法,不pipe多么疯狂…但是,这是一个很大的,尽pipe事实上,有很多其他的方式来实现相同的结果,恐怕有很多原因,这是我必须与:) 编辑 这就是我所说的脚本 try { System.Security.SecureString password = new System.Security.SecureString(); string uspw = "mypassword"; foreach (char c in uspw) { password.AppendChar(c); } Process scriptProc = new Process(); scriptProc.StartInfo.FileName = @"cscript"; scriptProc.StartInfo.Arguments = scriptPath + " //Nologo " + uploadPath + xlsFileName; scriptProc.StartInfo.WindowStyle = […]

如何在ASP.NET Webforms网站上即时创buildExcel .xlsx文件?

我需要将时间表从数据库导出到ASP.NET WebForms站点上的Excel文件。 当用户点击“导出到Excel”链接,他得到这个文件生成。 我不想明确地生成它,并存储在服务器上,以提供按需下载,因为那样会有数百个文件。 我有所有的数据来做到这一点,所以问题只是关于使用什么方法。 我的一位同事以一种非常丑陋的方式完成了这个任务 – 他创build了独立的网页,将导出所需的所有数据推送到StringBuilder实例,然后将其所有内容写入Response对象,并添加了一个适当的头文件,使其看起来像Excel文件。 所有这些工作都是在Page_Load事件处理程序中完成的 。 而我们的服务器没有安装Excel – 又一个棘手的事情。 有什么build议么? 提前致谢