Tag: 自动化

提高MS Excel写作的性能

在从/向MS-Excel单元读取/写入数据时,我遇到性能问题。 我正在使用MS Excel 11.0对象库与VB.NET自动化。 目前,从Excel文件读取和写入需要花费太多时间。 (10分钟读取1000行:()。看起来单元格的读写方式并不是那么高效。是否有任何方式使用批量操作来读/写数据?

delphi5与自动化和Excel 2007运行Excel阅读

在我正在debugging的delphi 5程序中有这段代码: s:string vararray:variant; vararray := VarArrayOf(['']); vararray := ExcelWorkSheet1.UsedRange[0].Value; s := VarToStr(vararray); 当Excel XP和2003运行时,这用于完美的工作。 但自从我更改为Excel 2007(也是Windows7)之后,delphi在最后一行('无效的变体types转换')中给出了变体types转换错误。 有人能帮我解决这个问题吗? 这个代码在过去的5年中还没有被触及,我无法find一个很好的来源来logging这些组件 谢谢!

将Excel.WorkSheet获取到相同的Excel.Workbook中

所以,经过大量的研究和使用下面的代码在一个类中,我传递的项目(一个DataTable)在Excel中打开。 我有大约5张纸,需要在同一本书中打开。 下面的代码是第一个2.问题是他们都开放在新的工作书 – 我需要他们都打开在同一个工作簿。 尽pipe他们在每个新的工作簿中都在正确的表格上打开。 我认为一个简单的“如果”的声明会起作用,然而,它不是 – 任何关于如何将它们整合到一个工作簿的input将不胜感激,并提前感谢! Microsoft.Office.Interop.Excel.Application oExcel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbooks oBooks; Microsoft.Office.Interop.Excel.Sheets oSheets; Microsoft.Office.Interop.Excel.Workbook oBook; Microsoft.Office.Interop.Excel.Worksheet oSheet; oExcel.Visible = true; oExcel.DisplayAlerts = false; oExcel.Application.SheetsInNewWorkbook = 5; oBooks = oExcel.Workbooks; oBook = (Microsoft.Office.Interop.Excel.Workbook)(oExcel.Workbooks.Add(Type.Missing)); oSheets = oBook.Worksheets; if (sheetName == "Combined") { oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oSheets.get_Item(1); oSheet.Name = sheetName; object[,] arr = new […]

C ++ Builder和Excel自动化,从哪里开始?

我想用C ++ builder 2009dynamic地创build和填充excel电子表格,但是我不完全确定如何去做。 在网上search,我已经缩小到使用OLE自动化。 此外,我正在寻找一个文件或编程教程,可以让我开始。 有没有一个简单的编程教程,也彻底解释了OLE自动化的概念?

AccessibleObjectFromWindow返回一个E_FAIL代码

请检查以下代码,该代码应该连接到当前正在运行的Excel: #include <windows.h> #include <oleacc.h> #import "C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL" no_implementation rename("RGB", "ExclRGB") rename("DocumentProperties", "ExclDocumentProperties") rename("SearchPath", "ExclSearchPath") #import "C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB" no_implementation #import "C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" rename("DialogBox", "ExclDialogBox") rename("RGB", "ExclRGB") rename("CopyFile", "ExclCopyFile") rename("ReplaceText", "ExclReplaceText") BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM) { WCHAR szClassName[64]; if(GetClassNameW(hwnd, szClassName, 64)) { if(_wcsicmp(szClassName, L"EXCEL7") == 0) { […]

最大数量的Excel进程?

如果我这样做(例如) for (int i=0;i<22;i++) { var app = new Excel.Application(); } 然后创build22个excel进程。 但是,如果我这样做 for (int i=0;i<25;i++) { var app = new Excel.Application(); } 它创build了22个excel过程,但是其中大部分消失了,只剩下一些。 是否有22或什么的限制? 这可以增加吗? 谢谢! 编辑:用下面的代码它不会发生: var apps = new List<Application>(); for (int i=0;i<25;i++) { apps.Add(new Application()); }

如何处理Excel使用OLE模块?

朋友们,我写了一个Perl脚本,使用Spreadsheet::WriteExcel将一组CSV文件转换为电子表格格式。 经过一番研究后,我得出结论:没有select将列宽固定为“自适应”选项。 所以我在做的是在我使用Win32 :: OLE模块打开这个XLS文件的同一个脚本,同时这样做我得到了一个错误信息 Can't use an undefined value as a HASH reference 相应的代码是: # spread sheet creation my $workbook = Spreadsheet::WriteExcel->new($file_name); # … my $worksheet = $workbook->add_worksheet($work_sheet_name); # … $worksheet->write($rowNum, $j,$_,$default_format); 在这些步骤之后,我在同一个脚本中有更多的行: my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application'); $Excel->{'Visible'} = 0; #0 is hidden, 1 is visible $Excel->{DisplayAlerts}=1; #0 is hide alerts # […]

在多个Excel文件中自动创build图表?

我花了大量的时间在几十个excel文件(都包含相同格式的数据)上创build相同的graphics,并相信必须有一个更有效的方式来完成我刚刚完成的工作。 为了简化,请考虑使用相同格式的数据的50个excel文档。 是否存在一种自动的方法: 创build一个简单的线条图 添加轴标签,图表标签,删除水平网格线 包括趋势线/ R ^ 2值 将新的工作簿保存到文件名后附加“_graphed”的特定位置 这是Excel VBA可以用来做什么的吗?

使用Excel的Powershell脚本运行缓慢

所以我有这个脚本,我在我的笔记本电脑上编码,工作正常,工作是将两个.csv文件合并成一个.xls文件。 运行包含两千行的.csv文件的脚本最多需要几秒钟。 但是,当我尝试运行它应该位于服务器上,它需要…小时。 我还没有完全运行,但在.xls文件中写入一行可能需要2-3秒。 所以我想知道什么是造成运行时的巨大增加。 我正在监视脚本运行时的CPU负载,并且负载为50-60%。 服务器有Ram的负载,和两个CPU核心。 我如何加快速度? 该脚本如下所示: $path = "C:\test\*" $path2 = "C:\test" $date = Get-Date -Format d $csvs = Get-ChildItem $path -Include *.csv | Sort-Object LastAccessTime -Descending | Select-Object -First 2 $y = $csvs.Count Write-Host "Detected the following CSV files: ($y)" foreach ($csv in $csvs) { Write-Host " "$csv.Name } $outputfilename = […]

嘘 – Excel自动化,麻烦select范围

我正在调查Boo,并认为这将是一个非常有用的练习,可以尝试转换一些使Excel自动运行的VB脚本(本例中为2007)。 很多事情似乎很容易翻译,但是我有很多麻烦select范围 – 每当我尝试获取或设置他们我得到一个TargetInvocationException成员找不到。 下面是一个我用booish运行的(减less的)例子: def CreateInstance(progid): type = System.Type.GetTypeFromProgID(progid) return type() xl as duck = CreateInstance("Excel.Application") xl.Visible = true xl.Workbooks.Add sht as duck = xl.ActiveSheet #Next line throws exception rng as duck = sht.Range("A1") 某些事情可以正常工作,例如设置表单的Name属性等,但是如何使用范围? 是否有一些特殊的方法,VB隐藏,我需要打电话,如果是的话,我将如何去找出那些? 干杯, 莱尼。