2
我有一个Excel文件(.xlsm),里面有一个宏。我想将这个Excel文件上传到服务器上,让C#执行它而不是VBA宏。这个宏看起来很简单,但我不太了解它将其转换为C#。下面是宏代码:将Excel宏转换为C#?
Sub publishpages()
'calculate how many iterations
x = 0
Sheets("pagegen").Select
Range("n1").Select
Range("n1").Copy
numberOfPages = ActiveCell.Value
'step through and select each sample
For x = 0 To numberOfPages
Sheets("listsample").Select
Range("A2").Select
ActiveCell.Offset(x, 0).Range("A1").Select
Selection.Copy
Sheets("pagegen").Select
Range("l1").Select
ActiveSheet.Paste
'name folder and filename
Sheets("pagegen").Select
Range("ac2").Select
Range("ac2").Copy
foldername = ActiveCell.Value
'publish pages
Range("d3:q80").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWorkbook.PublishObjects.Add(xlSourceRange, "C:\Temp\" & foldername, "pagegen", "$d$3:$q$80", xlHtmlStatic, "sampleweb11 current_22", "").Publish (True)
Next x
End Sub
因为我计划在一台服务器上运行此,我要寻找一个托管库,所以我没有在服务器上安装Office。这就是我正在看的,它甚至支持Linq:http://epplus.codeplex.com
有关如何启动它的任何想法?
考虑使用VB.NET,因为它处理_Office.Interop_好得多。而不是使用'.Select','.Copy'和'.Paste'命令的剪贴板考虑使用直接赋值('Range [xx] .Value2 = Range [yy] .Value2') – ja72
重构肯定会有帮助代码转换)。你可以发布重构版本作为你的答案,我会接受。这会帮助我理解这是在做什么。 – TruMan1