Tag: excel.application

将两个单独的xlsx文件中的.xlsx工作表合并到新工作簿中的单个工作表中

我需要用vbscript(而不是vba)完成这个。 我找不到如何做到这一点的任何例子。 我已经有了vbs,可以完成所有我需要的Excel文件的主要处理,但是我需要的最后一部分只是简单地将两个单独的.xlsx文件中的工作表合并到一个工作表中,放到一个新的工作簿中。 我已经find了使用vba将两个文件合并到单独的wb中的示例,但是我需要它们在同一个工作表上,并通过vbscript。 它基本上就像两张床单的结合。 它们都包含相同数量的列(6列)和相同types的数据。 基本上需要复制任一电子表格中的标题并粘贴到新的工作簿/工作表中,然后将所有数据复制到标题下方的新工作簿/表单中。 希望这是有道理的。 任何帮助表示赞赏。 我半接近这个,这将两个数据表放到同一个新的工作簿称为“合并”,但需要它合并到一个工作表。 Set objExcel = WScript.CreateObject ("Excel.Application") objExcel.Visible = false strFileName = "c:\excel\merged.xlsx" Set objWbA = objExcel.WorkBooks.open("c:\excel\wb1.xlsx") Set objWbB = objExcel.WorkBooks.open("c:\excel\wb2.xlsx") Set objWorkbook = objExcel.Workbooks.Add() objwba.worksheets(1).copy _ objWorkbook.worksheets(1) objwbb.worksheets(1).copy _ objWorkbook.worksheets(2) objWorkbook.SaveAs(strFileName) objWorkbook.close objWbA.Close True objWbB.Close True objExcel.Quit Set objExcel = Nothing ========================== 这是我想出的一个解决scheme(用CSV输出): Option Explicit Dim […]

为什么我得到一个多余的工作表,即使我明确地设置工作表计数为1?

我想避免生成名为“Sheet1”的空白/多余的工作表。 我以为我可以通过指定工作簿应该有多less张工作表来这样做: _xlApp = new Excel.Application { SheetsInNewWorkbook = 1 }; …但我仍然得到一个不需要的“Sheet1”,除了我创build的工作表。 这是相关的代码: using Excel = Microsoft.Office.Interop.Excel; . . . private Excel.Application _xlApp; private Excel.Workbook _xlBook; private Excel.Sheets _xlSheets; private Excel.Worksheet _xlSheet; . . . private void InitializeSheet() { _xlApp = new Excel.Application { SheetsInNewWorkbook = 1 }; _xlBook = _xlApp.Workbooks.Add(Type.Missing); _xlBook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); […]

Powershell添加1 excel列参考

刚才在这里问了一个PowerShell的问题findExcel单元格引用 ,我需要添加到它。 我最终的总体代码如下。 $filePath = "c:\temp\test.xlsx" if (test-path $filePath) { $wb = $xl.Workbooks.Open($filePath) $ws = $wb.Worksheets.Item("sheet1") if ([bool]$ws.cells.find("German Baseload")) {write-host $ws.cells.find("German Baseload").address(0, 0, 1, 0)} } 这将返回string所在的F25的单元格引用,基于此我想在单元格引用G25中testing它旁边的单元格,我的问题是如何向F25添加一列?

testingExcel是否完成启动/closures序列

我正在使用PowerShell来通过COM脚本通过PowerShell脚本自动完成一些excel任务: $xl = new-object -ComObject Excel.Application sleep 5 DO THINGS… $xl.quit() sleep 5 $null = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl) [GC]::collect() 我的问题是,如果我省略了第一次sleep呼叫,Excel将不会准备好执行需要加载项的任务,并且对$xl.quit()的调用不起作用,并且该过程无法退出,如下所示: PS > Get-Process EXCEL Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ——- —— —– —– —– —— — ———– 784 104 104008 109380 944 3.21 5996 EXCEL 同样,如果我省略了第二次sleep ,excel没有时间完成closures,并最终导致出现一个对话框,指出“Microsoft Excel已停止工作…”,并在下一次Excel启动时,另一个对话框状态“Microsoft Excel未能正常closures,在安全模式下启动? function XLtest { $xl = […]

Powershellfindexcel单元格引用

我正在使用下面的PowerShell代码来search一个string的Excel文档,并返回true或false取决于它的发现。 if (test-path $filePath) { $wb = $xl.Workbooks.Open($filePath) if ([bool]$xl.cells.find("German")) {$found = 1} } 我希望能够得到string的单元格引用,如果它find,但我不能弄明白,或在谷歌上find答案。 你能帮我吗?

从XML到Excel舍入数字

我正在阅读XML的一些价值: <DocumentSetNumber>20151027301060001</DocumentSetNumber> $DSN = $xml.metaBI.DocumentSetNumber 然后使用PowerShell写入Excel: $ExcelWorkSheet.Cells.Item($Row,1).Value2 = $DSN 但在Excel中,我得到这个数字:2.0151E + 16 如果我改变Excel格式,我可以得到这个:20151027301060000 这不是一样的数字,我需要得到完全一样的。 我试图玩Excel格式,也使用variables的Tostring(),但没有运气。 我还可以尝试什么? PS。 如果我手动复制并粘贴该值,则只能使用该值 匹配目标格式 Excel中的选项。 我如何从PowerShell设置这个选项?

“新”Excel.Application vs Excel.Application

我正在寻求澄清“新”对对象和剧本的影响。 我的理解是,如果我需要在Excel文档上执行操作,并且应用程序已closures,那么我应该使用New Excel.Application。 如果我保持这个应用程序处于活动状态(例如通过工作簿之类的对象),并且稍后在脚本中我决定打开另一个工作簿,那么我仍然应该使用New Excel.Application还是使用Excel.Application? 我的担心在于我要写一个长的脚本,至less在5个工作簿上执行操作。 我将不得不从一个工作簿切换到另一个,然后回到前… 如果每次脚本创build一个新的Excel.Application,我可能最终会有相当多的人在运行,我担心这个混乱会产生问题。 写下这样的东西比较合适吗? Dim NxlApp as New Excel.Application Dim xlApp as Excel.Application NxlApp.Workbooks.Open "C:\Users\…\WorkbookA.xlsx" NxlApp.Visible = True 'Perform actions on WorkbookA (keep it open) Set ExcelApp = GetObject("", "Excel.Application.14") xlApp.Workbooks.Open "C:\Users\…\WorkbookB.xlsx" xlApp.Visible = True 'Perform actions on WorkbookB (keep it open) 'Go back to WorkbookA (using the xlApp variable […]