Tag: vb.net

如何获得一个Windows服务VB.net来访问一个Excelmacros

我已经看了几个stackoverflow文章Excel自动化Windows服务和如何从Windows服务运行Excel VBA代码 所以答案似乎是不能做到的。 我有一个xlsm文件(Microsoft Excelmacrosfunction工作表),它有一个macros。 它只是打开一个.csv文件,查看循环,并输出一个Excel文件。 我有5或6这些(每个处理每个客户端的csv文件不同),当我们有1-2时,手动运行进程来获得Excel输出没有问题。 我想简单地自动化这个过程。 我目前有一个服务,生产csv,这似乎是最好的地方做到这一点。 该服务在服务器上运行,该服务查看数据库并查看是否需要生成csv(或其他报告)。 那么有什么改变了,我现在可以在一个服务中擅长自动化吗? 怎么样? 如果没有任何build议,该怎么办?

在使用SSIS将其加载到目标表之前,如何在excel中合并列标题名称

有一个Excel表格(这个屏幕截图只是一个部分,它显示了800列以上的前5列!),下面提到的格式。 列名在第4行。需要使用SQL SERVER INTEGRATION SERVICE(SSIS)将其加载到表中之前,将列名作为第3列和第4列的组合。如何导入文件以满足要求? 目标表中所需的列名示例: – [Plcn Pyll SUM 00BASELINE] [Plcn Pyll SUM 04QUARTER_2014_15_Q1] [Plcn Pyll SUM 08QUARTER_2014_15_Q2] 如何导入excel文件以符合要求? (SSIS平面文件连接pipe理器有一些限制吗?那么这个必须在excel vb级别处理?) 如果我将excel转换为txt并尝试使用平面文件连接pipe理器导入,则显示“ there is more than one data source column with same name ”。 00BASELINE在800栏标题中出现了00BASELINE 。

每次读取Excel工作表时使用并行foreach的不同结果

Imports System.IO Imports System.Threading Imports System.Threading.Tasks Imports System.Collections.Concurrent Imports Excel = Microsoft.Office.Interop.Excel Public Class TestCarDatas Public Property RowID As Integer Public Property ModelYear As Integer Public Property VehMfcName As String Public Property EmgVeh As Boolean End Class Module ExcelParallelDataGather2 Public Const ExcelVehDataPath As String = "D:\Users\Dell\Desktop" Public rwl As New System.Threading.ReaderWriterLock() Public rwl_writes As Integer […]

OleDb Excel连接错误“System.Data.OleDb.OleDbException”

我创build了一个连接到共享文件夹上的Excel工作表的小型vb.net应用程序。 它工作得很好,如果我打开之前使用的应用程序的Excel,问题是当Excel不在后台打开,当我尝试打开一个连接时出现“System.Data.OleDb.OleDbException”错误。 我已经读了一些关于这个错误,我明白这与本地临时库的访问权限有关。 所以我的问题是:1)有没有解决scheme? 2)这是我的情况下,Excel文件坐在共享驱动器上的最佳连接策略? 连接代码: skuPath = "C:\path.xlsm" cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + skuPath + ";Extended Properties=Excel 8.0;") q1 = "select * from [" + year + "$B4:V128]" da = New System.Data.OleDb.OleDbDataAdapter(q1, cn) cn.Open() da.Fill(ds, "Table1") cn.Close() dt = ds.Tables(0) 我收到错误cn.Open()。

对象未设置为对象的实例错误Excel 2013自动化VB.NET

试图在VB.Net中创build一个小的报告程序。 它可以在Excel 2003和2010中使用,但是在尝试创build第二个工作表时会在Excel 2013中引发错误。 下面列出程序,我也指出它出错的地方。 它甚至没有抓住Try和Catch,我把它添加为“未处理的exception”。 目标框架是3.5 已尝试x86,x64和任何CPU作为目标CPU 我用2003和2010的.dlls作为我的参考。 Imports Microsoft.Office.Interop.Excel Private Sub DRpts() Try Dim strFileDirName As String = "" Me.Cursor = Cursors.WaitCursor 'Morning Report Sheet 1 Dim MornRpt As String = "SELECT DateCreated, ReportClass, SUM(QtyOrdered), SUM(ExtendedPrice) " & _ "FROM tmp_DailyReport GROUP BY DateCreated, ReportClass" Dim oExcel As Object Dim oBook As Object […]

无法从SSIS包作业打开xlsm文件

我有一些SSIS作业打开一些Excel文件并操作它们。 作业中打开Excel文件的任务在每个作业中基本相同,只是指向一个不同的Excel文件。 这些工作除了一个以外都能正常工作。 但是,即使这个从包中手动运行,而不是在工作。 适用的代码是: Dim reportLocation As String Dim oXL As Microsoft.Office.Interop.Excel.Application Dim oWB As Microsoft.Office.Interop.Excel.Workbook reportLocation = "\\testlocation\share\test.xlsm" 'Open Excel instance oXL = New Microsoft.Office.Interop.Excel.Application oXL.Visible = False 'Open the Excel file to edit oWB = oXL.Workbooks.Open(reportLocation) 'Error here 收到的错误如下: Microsoft Excel不能访问文件'\\ testlocation \ share \ test.xlsm'。 有几个可能的原因: ?文件名或path不存在。 •该文件正在被另一个程序使用。 ?试图保存的工作簿与当前打开的工作簿具有相同的名称。 在Microsoft.Office.Interop.Excel.Workbooks.Open(string文件名,对象更新链接,对象ReadOnly,对象格式,对象密码,对象WriteResPassword,对象IgnoreReadOnlyRecommended,对象源,对象分隔符,对象可编辑,对象通知,对象转换器,对象AddToMru,Object Local,Object […]

如何在使用Oledb的同时使用其他用户阅读Excel?

我有一个共享驱动器的Excel,我的应用程序正在使用Oledb连接从Excel中读取数据到DataGridView。 cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + skuPath + ";Extended Properties=""Excel 12.0;HDR=YES;""") q1 = "select * from [" + year + "$B4:AM300]" da = New System.Data.OleDb.OleDbDataAdapter(q1, cn) Try cn.Open() da.Fill(ds, "Table1") Catch e As OleDb.OleDbException Dim errorMsg As String Dim i As Integer errorMsg = "" For i = 0 To e.Errors.Count – […]

从Excel中复制文本并将其粘贴到PowerPoint中,然后格式化复制的文本

我是一个非常新的编写VB脚本。 我能够从Excel复制文本(或范围),并将其粘贴在PowerPoint中,我想改变字体大小(12),把一个边框,并将背景设置为白色。 以下是我必须从Excel复制文本: ' ~~~~~~~~~~~~~ Sub Copy_ExcelText_Powerpoint_and_Format() ' This copies a range in excel and copy it in Powerpoint, and then formats it Dim PPApp As Object ' As PowerPoint.Application ' Reference existing instance of PowerPoint Set PPApp = GetObject(, "Powerpoint.Application") Sheets("Sheet1").Range("J2:J4").copy PPApp.ActivePresentation.Slides(1).Shapes.PasteSpecial DataType:=10, Link:=0 ' now format the text ' ……. ' ~~~~~~~~~~~~~ 我发现一些脚本会改变活动幻灯片中所有文本的字体,但是我只想改变刚刚从Excel复制的文本的字体大小(等等)。 […]

如何使用EPPlus删除单元格或范围的条件格式

有没有办法从EPPlus的单元格或范围中删除条件格式? 我已经尝试清除,重置,删除行,插入行,没有格式复制单元格,但没有任何工作。 有许多方法可以从工作表(worksheet.RemoveAll或RemoveAt)中删除所有条件格式,但不能从任何地方find的单元格或范围中删除。 谢谢

为什么Windows Forms应用程序不会将文件保存到文件夹

我有一个Windows窗体应用程序。 在这个应用程序中,我保存一个Excel文件到文件夹。 这是保存文件的function: Public Sub ExportToXls(ByRef dt As DataTable, ByRef path As String) On Error Resume Next 'I use Microsoft.Office.Interop.Excel version = 12 Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass xlWorkBook = xlApp.Workbooks.Add(misValue) xlWorkSheet = xlWorkBook.Sheets(1) For i1 As Integer […]