Tag: .net

我试图访问Excel文件导出到SQL数据库与ASP.NET和VB.NET,但得到以下错误

Microsoft Access数据库引擎无法打开或写入文件“”。 它已经由另一个用户专门打开,或者您需要查看和写入其数据的权限。 我试图从ASP.NET和VB.NET导入Excel文件,以将其更新到我的SQL服务器。 但我收到以下错误。 请给我一个解决scheme。 VB.NET代码。 Dim strConnection As [String] = "projectlist" Dim path As String = fileuploadExcel.PostedFile.FileName Dim excelConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties=Excel 12.0;Persist Security Info=False;Mode= Share Deny None;Persist Security Info=False;Mode=12" Dim excelConnection As New OleDbConnection(excelConnectionString) Dim cmd As New OleDbCommand("Select [ID],[Name],[Designation] from [Sheet1$]", excelConnection) excelConnection.Open() Dim […]

无法创buildExcel.Application的对象

在我的C#应用​​程序中,我导入和导出数据到excel。 我有办公室2013。 我正在使用以下代码: using Excel = Microsoft.Office.Interop.Excel; Excel.Application _excelApp = null; _excelApp = new Excel.Application(); 此代码工作正常,但最近我安装了微软项目专业2013年,它也更新办公室。 在这之后,我在_excelApp = new Excel.Application(); 错误是: 无法将“System .__ ComObject”types的COM对象转换为接口types“Microsoft.Office.Interop.Excel.Application”。 此操作失败,因为IID为“{000208D5-0000-0000-C000-000000000046}”的接口的COM组件上的QueryInterface调用失败,原因是以下错误:加载types库/ DLL时出错。 (来自HRESULT的exception:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。

以编程方式访问Excel中当前选定的XML映射

我正在开发一个Excel AddIn,它需要知道XML Source Pane中当前select的XML Map是什么。 我还没有find任何方式来访问它。 我一直在挖掘微软Office Excel的文档,没有发现任何说这是不可能的。 有人进入了吗?

将Excel表格更快地复制到DataTable中

我正试图将一百万条logging的Excel表复制到数据表中。 不幸的是,大约需要47秒才能完成这个过程。 有更好的方法来复制这些信息在较less的时间? 以下是移植信息的代码: String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0 XML;';"; OleDbConnection con = new OleDbConnection(constr); OleDbCommand oconn = new OleDbCommand("Select * From [" + sheetName + "$]", con); con.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(oconn); dtTemp.Reset(); dtTemp.TableName = userUpload; sda.Fill(dtTemp); //Puts imported table into the dtTemp table con.Close(); string fields […]

编辑一个Excel文件,同时导出数据从MS访问到其他Excel文件使用C#没有错误发生

我写了一个程序来导出数据从MS访问Excel。 这工作正常。 但编辑或打开任何其他excel文件时发生错误。 如何解决这个错误。 “从HRESULTexception:0x800AC472” private void WriteExcel(System.Data.DataTable DT, string FileName) { Microsoft.Office.Interop.Excel.ApplicationClass excel = new ApplicationClass(); Microsoft.Office.Interop.Excel.Workbook WB = excel.Workbooks.Add(true); Microsoft.Office.Interop.Excel.Worksheet WSht; int ColId = 0; int RowId = 0; WSht = (Microsoft.Office.Interop.Excel.Worksheet)WB.Sheets[1]; Range Rng = WSht.get_Range("A1", "IV" + (DT.Rows.Count + 1).ToString()); Rng.NumberFormat = "@"; //Fill Column Heading foreach (DataColumn Col in DT.Columns) { […]

C#Microsoft.Office.Interop.Excel v15慢

我正在处理一个需要编辑excel文件的应用程序,执行各种操作,如: 将工作表中的粘贴部分复制到工作表 添加/编辑值 公式和macros在后台运行 这是一个最初使用Excel 2007开发的应用程序,但是现在我必须使用Excel 2013.不幸的是,我注意到,在安装了Excel 2013的计算机而不是Excel 2007中运行速度几乎慢了10倍。 因此,我创build了一个非常简单的基准testing应用程序,它随机生成数字,并将它们写入1000(行)* 15(列)= 15000个单元格。 结果令人失望,因为在Excel 2007中运行大约需要670毫秒,而在Excel 2013中运行需要大约3257毫秒(这是速度的5倍) 请find提供以上基准结果的代码: static void Main(string[] args) { var stopwatch = new Stopwatch(); stopwatch.Reset(); stopwatch.Start(); var excel = new Application(); excel.Visible = false; excel.DisplayAlerts = false; var workbooks = excel.Workbooks; var workbook = workbooks.Add(Type.Missing); var worksheets = workbook.Sheets; var worksheet = (Worksheet)worksheets[1]; […]

如何检索复杂的Excel文件与合并单元格,并保存为XML文件使用VB.NET?

我有这个可以检索excel文件并保存为xml文件。 Imports Microsoft.Office.Interop.Excel Imports System.Xml Imports System.IO Module Module1 Sub Main() Try Dim excel As Application = New Application Dim filename As String = "person" Dim file_extension As String Dim path As String = "C:\Users\" Dim w As Workbook Try file_extension = "xlsx" w = excel.Workbooks.Open(path & filename + "." & file_extension) Catch ex As […]

如何解决从Excel文件中读取合并单元格值的错误?

我有这个代码读取Excel文件中的每个单元格。 Do Until objRange.Cells(intRow, 1).value.Equals("小 計") intRow都会递增,但是当单元格指向一个合并的行时,比如说,第3,4和5行被合并 – 当它指向3时,它会执行,但是当它指向4时,它会返回一个错误 – System.NullReferenceException 我如何解决这个错误,所以当它导致一个错误,它会简单地增加,并移动到下一行? 我尝试On Error Resume Next但它似乎没有移动到下一个intRow 。 它仍然会导致一个错误,但这一次,这是合乎逻辑的,因为当它导致一个错误时,它会恢复下一行,所以intRow不增加,但值似乎是在递增的intRow位置。 这就是我所理解的。 任何人也可以解释这是如何造成逻辑错误? 以下是导致逻辑错误的最新代码 On Error Resume Next Do Until objRange.Cells(intRow, 1).value.Equals("小 計") 'causes an error If objRange.Cells(intRow, 1).Value.Equals("I") Then Do Until objRange.Cells(intRow + 1, 1).Value.Equals("II") If Not objRange.Cells(intRow + 1, 2).Font.Size.Equals("16") Then intBunruiType += 1 arrBunruiType(intBunruiType) = […]

如何使用SpreadsheetLight正确分组Excel中的行?

我目前正在使用SpreadsheetLight将一些数据导出到Excel,但是我从来没有把它们分组。 所以现在我需要你的帮助。 我有以下代码: if (groupingProperties.Any()) { int start = data.Rows.Count + 2; GroupRows<T, TId>(slDocument, data.AsEnumerable().Reverse(), ref start, 0, groupingProperties); } 其中slDocument是SpreadsheetLight的SLDocument的实例, data是通过groupingProperties正确sorting的DataTable 。 GroupRows方法: private static void GroupRows<T, TId>(SLDocument slDocument, IEnumerable<DataRow> rowCollection, ref int start, int level, params string[] groupingProperties) where T : AbstractEntity<T, TId> { foreach ( var grouped in from row in rowCollection […]

独立的excel从C#

我出口我的HTML像这样的excel: // our html datas // you can use foreach for repating sTEXT = @"<table class='table'><thead>"; sTEXT += @"<th>"; sTEXT += @"Caption A"; sTEXT += @"</th>"; sTEXT += @"</thead>"; sTEXT += @"<tr>"; sTEXT += @"<td>abcdef</td>"; sTEXT += @"<td>ghjklm</td>"; sTEXT += @"</tr>"; sTEXT += @"</table>"; // our screen literaldata sets lblData.Text = sTEXT; // excel output […]