Tag: asp.net

更新Excel工作表时,操作必须使用可更新的查询

尝试更新Excel表时出现此错误: Server Error in '/ReadExcelData_Csharp' Application. Operation must use an updateable query. 这里是我使用的代码: querys = "UPDATE [Sheet1$] "+"SET [Number]=" +s.Trim()+ " WHERE [Number]=" + s2.Trim() ; objcmc = new OleDbCommand(querys, conn); objcmc.ExecuteNonQuery(); 任何帮助将不胜感激 。 这里是我使用的连接: if (strFileType.Trim() == ".xls") { connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; } else if (strFileType.Trim() == […]

如何通过oledb阅读器或excel库,excel datareader或NPOI等(Interop除外)如何检查一个单元格包含公式或不在Excel中?

如何通过oledb阅读器检查一个Cell是否包含公式或不在Excel中? System.Data.OleDb.OleDbConnection conn2 = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + strFileName + "; Extended Properties = \"Excel 8.0;HDR=NO;IMEX=1\";"); conn2.Open(); string strQuery2 = "SELECT * FROM [" + Table + "]"; System.Data.OleDb.OleDbDataAdapter adapter2 = new System.Data.OleDb.OleDbDataAdapter(strQuery2, conn2); System.Data.DataTable DT2 = new System.Data.DataTable(); adapter2.Fill(DT2);

输出.XLSX到响应时EPPlus错误

我有一个奇怪的问题在这里使用EPPlus来创build一些.XLSX文件。 我有一个包被创build,然后被输出到响应。 我已经创build了一个包,如下所示: var file = new FileInfo(@"C:\Test.xlsx"); ExcelPackage package = new ExcelPackage(file); //…code to output data…// package.Save(); 这将文件保存到我的本地C:驱动器正确,当我打开它的效果很好。 没有错误或任何东西,格式是正确的,等等。 不过,我现在想输出这个文件到响应stream,所以我修改了代码,我看起来像这样: ExcelPackage package = new ExcelPackage(); //…code to output data…// MemoryStream result = new MemoryStream(); package.SaveAs(result); context.Response.Clear(); context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; context.Response.AddHeader("Content-Disposition", "attachment;filename=MissionDetails.xlsx"); result.WriteTo(context.Response.OutputStream); context.Response.End(); 但是当我运行这个代码时,我试图打开Excel文件时得到以下提示: Excel在filename.xlsx中发现不可读的内容。 你想恢复这个工作簿的内容? 如果您信任此工作簿的来源,请单击“是” 点击是,然后显示以下提示: 此文件不能通过使用Microsoft Excel打开。 您是否要searchMicrosoft Office Online网站上的可以打开文件的转换器? 我在这里selectNo […]

“检索COM类工厂的组件…错误:80070005访问被拒绝。”(从HRESULTexception:0x80070005(E_ACCESSDENIED))

我刚刚创build了一个简单的应用程序,并在IIS6.0中托pipe。 在代码中,我只是实例化Excel对象。 using excel = Microsoft.Office.Interop.Excel.Application; namespace TestHosting { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { excel excelObj=new Microsoft.Office.Interop.Excel.Application(); } } } 它给我下面的错误 "Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied." (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). […]

通过WebApi调用从页面下载excel文件

我试图发送一个9MB的.xls文件作为从Web API控制器方法的响应。 用户将点击页面上的button,这将通过浏览器触发下载。 这是我到目前为止,但它不起作用,但它也不会抛出任何例外。 [AcceptVerbs("GET")] public HttpResponseMessage ExportXls() { try { byte[] excelData = m_toolsService.ExportToExcelFile(); HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK); var stream = new MemoryStream(excelData); result.Content = new StreamContent(stream); result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Data.xls" }; return result; } catch (Exception ex) { m_logger.ErrorException("Exception exporting as excel file: ", […]

导出数据表到Excel文件

我有一个DataTable 30 +列和6500 + rows.I需要转储整个DataTable值到一个Excel文件。任何人都可以请帮助与C#代码。我需要每个列的值在一个单元格。准确地说,我需要在Excel文件中的DataTable的确切外观副本。请帮助。 谢谢,Vix