我想知道我能做些什么来提高Excel自动化的性能,因为如果你在工作表中有很多事情可能会很慢。 这里有一些我发现自己: ExcelApp.ScreenUpdating = false – closures重ExcelApp.ScreenUpdating = false的屏幕 ExcelApp.Calculation = Excel.XlCalculation.xlCalculationManual – closures计算引擎,以便Excel在单元格值更改时不会自动重新计算(完成后将其重新打开) 减less对Worksheet.Cells.Item(row, col)和Worksheet.Range调用 – 我必须轮询数百个单元格才能find我需要的单元格。 实现一些细胞位置的caching,将执行时间从约40秒减less到约5秒。 什么样的interop调用会对性能产生重大影响,应该避免? 你还能做什么来避免不必要的处理?
在C#中的一个ASP.NET应用程序中,我们采取一定的数据收集(SubSonic收集)并将其导出到Excel。 我们也想要以特定的格式导入Excel文件。 我正在寻找一个我可以用于这个目的的图书馆。 要求: Excel 2007文件(Excel 2003是否支持64k行?我需要的不止于此)。 在服务器上不需要Excel 采取一个types的集合,如果可以的话,试图把数字字段作为数字在Excel中。 大文件(100k到10M)运行良好 – 足够快。 导出GUID时不会崩溃! 不花费一大笔钱(没有像aspose这样的企业库)。 免费总是很好,但可以是一个商业图书馆。 你推荐什么图书馆? 你有没有使用它的大量的数据? 还有其他解决scheme吗? 现在,我正在使用一个简单的工具来生成稍后由Excel加载的HTML,但是我正在失去一些function,另外Excel在我们加载时抱怨。 我不需要生成图表或类似的东西,只需要输出原始数据。 我正在考虑单位的CSV文件,但Excel是客户的要求。 我可以直接使用CSV,如果我有一个工具来转换和Excel。 鉴于Excel 2007是一个基于XML(和压缩)的文件格式,我猜这种库应该很容易find。 但是,最重要的是你的意见和看法。 编辑:具有讽刺意味的是,在我看来,并与最票的答案,最好的Excel导入和导出库是根本没有出口。 这不是所有情况下的情况,但它是我的。 XLS文件只支持64k行。 XLSX支持高达1M。 我试过的免费库function不好(一秒钟加载一行,当你有200K行)。 我还没有尝试过付费的,因为我觉得当你需要的是一个快速的XLSX < – > CSV转换程序时,它们的价值被高估了。
我正在试图确定一个程序需要花费的时间。 我有开始date和开始时间以及结束date和结束时间。 我需要做的是以小时显示结果:分钟:秒但是我需要使用7天的工作周,而不是5天的工作周。 以下是一个示例数据点: 单元格A1和C1都被格式化为短date。 单元格B1和D1被格式化为次。 E1中的公式是=((C1 + D1) – (A1 + B1)),E1被格式化为自定义数字[h]:mm:ss。 我遇到的问题是通过一个周末来计算。 时间只是不加起来,我认为这是由于Excel使用的工作周types。 任何帮助表示赞赏,谢谢!
我正在从一个Excel文件读取数据,并将数据写入另一个Excel文件。 我的问题是,源格式为dd.mm.yyyy ,date格式为dd-mm-yyyy 。 所以我search了,发现这个答案用一个stringreplace一个字符,这表明我可以使用substitute 。 所以我试过这个代码: For r = 1 To 10 myOutputSheet.Cells(6+r, 1).Value = myInputSheet.Cells(r, 1).Value 'Date myOutputSheet.Cells(6+r, 1).Value = substitute(myOutputSheet.Cells(6+r, 1), ".", "-") Next 它给出了错误: Microsoft VBScript runtime error: Type mismatch: 'substitute' 我如何纠正改变. 进入- ? 更新 我也试过这个: For r = 1 To 10 myOutputSheet.Cells(6+r, 1).Value = myInputSheet.Cells(r, 1).Value 'Date replace(myOutputSheet.Cells(6+r, 1), 2, […]
我正在检测Excel电子表格中某些单元格的值的变化,像这样… Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range Dim old_value As String Dim new_value As String For Each cell In Target If Not (Intersect(cell, Range("cell_of_interest")) Is Nothing) Then new_value = cell.Value old_value = ' what here? Call DoFoo (old_value, new_value) End If Next cell End Sub 假设这不是一个很好的编码方式,我怎样才能在改变之前得到单元格的值?
我有几百个中等大小的Excel文件(在5000到50.0000行之间,大约有100列)加载到R.它们有一个明确的命名模式,如x_1.xlsx , x_2.xlsx等 我知道有很多方法可以将这些文件加载到R中,例如for-loop或者lapplytypes的解决scheme。 因此,我的问题是: 你认为什么是最好的(最快,最直接)读取多个文件的方法? 你使用什么技巧或function?
在Excel的一个实例中运行的Excel VBAmacros是否可以访问另一个正在运行的Excel实例的工作簿? 例如,我想创build一个在任何正在运行的Excel实例中打开的所有工作簿的列表。
我们有各种电子表格,使用美味复杂的macros和第三方扩展来生成复杂的模型。 我正在开发一个项目,涉及到稍微调整各种input并查看结果。 而不是手工或编写VBA,我想看看我是否可以写一个Python脚本来驱动这个。 换句话说,python脚本将启动,加载excel表单,然后通过在一些单元格中进行细微更改并查看它们如何影响其他单元格来与表单交互。 所以,我的问题是双重的: 什么是最好的图书馆来驱动从Python这样的方式的Excel? 哪里是最好的文档/使用上述图书馆的例子? 欢呼声,/ YGA
有没有一种有效的方法来识别使用基函数的string中的最后一个字符/string匹配? 即不是string的最后一个字符/string,而是string/string在string中最后一次出现的位置。 Search和find这两个工作从左到右,所以我想不出如何申请没有冗长的recursionalgorithm。 现在这个解决scheme似乎已经过时了。
我有3组不同的数据(不同的列) A栏动物(5种) B栏的水果(1000种) C栏中的国家(10种) 有了这3个数据集合,我想得到5×1000×10共计50k对应的元素在列。 EFG(与每个水果和每个国家相对应的每个动物)。 可以通过手动复制和粘贴值来完成,但这需要很长时间。 有什么办法通过VBA代码或自动化它吗? 有没有像上面介绍的无限数据集的通用公式? 请让我知道,如果有什么不清楚。 这里是一个较小的数据例子,结果应该如何变化: