excel - 尝试在 Linux 中将 Microsoft.Office.Interop.Excel 与 VB.NET 结合使用

标签 excel linux vb.net

我想每天在我的 Linux (debian 9) 上自动在多个 Excel 上使用宏。于是我查了一下,发现用VB.NET是可以的。

添加 Microsoft 软件包后,我安装了 dotnet-sdk

sudo apt-get install dotnet-sdk-2.1

然后使用 dotnet new console -lang VB 创建我的项目

我将 Program.vb 修改为:

Imports System
Imports System.Text
Imports System.IO
Imports Microsoft.VisualBasic.ControlChars
Imports Excel = Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop

Module Program
    Sub Main(args As String())
        ProcessFiles
    End Sub
End Module

Sub ProcessFiles()
    Dim Filename, Pathname As String
    Dim wb As Excel.Workbook

    Pathname = ActiveWorkbook.Path & "/path/xlsx/"
    Filename = Dir(Pathname & "*.xlsx")
    Do While Filename <> ""
        wb = Workbooks.Open(Pathname & Filename)
        DoWork( wb )
        wb.Close( SaveChanges:=True )
        Filename = Dir()
    Loop
End Sub

Sub DoWork(wb As Excel.Workbook)
    With wb
        .Worksheets(1).Range("A1").Select
        .Selection.End(xlUp).Select
        .Rows("1:1").Select
        .Selection.AutoFilter
        .ActiveSheet.Range("$A$1:$L$999999").AutoFilter( Field:=1 , Criteria1:="<>*2018*" )
        .Range("A2:L999999").Select
        .Selection.EntireRow.Delete
        .Selection.End(xlUp).Select
        .ActiveSheet.Range("$A$1:$L$999999").AutoFilter( Field:=1 )
        .Rows("1:1").Select
        .Selection.AutoFilter
        .Range("A2").Select
    End With
End Sub

现在,我尝试使用 dotnet run 运行,但出现错误:错误 BC30002:未定义类型“Excel.Workbook”。

我找到了很多具有良好意义的答案:
导入 Excel = Microsoft.Office.Interop.Excel
但这还不够。我还找到了使用 Visual Studio 的解决方案,但我没有它并且不想...

感谢您的帮助

最佳答案

Excel Interop 层需要(等等......)Excel。 8-)

除非您找到了适用于 Linux 的 Microsoft Office 的副本以及实现 COM 接口(interface)的所有 Magic,否则您就不走运了。

关于excel - 尝试在 Linux 中将 Microsoft.Office.Interop.Excel 与 VB.NET 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52388976/

相关文章:

linux - 无法在 R 中的 debian 7.6 上安装 ggplot2

c - VB在3DES加密后无法检索字符串

java - 在 Excel 文件中追加数据

c - 为什么 ...at syscall 使用与之前打开的不同的 dirfd?

excel - 提示用户选择多个文件并对所有文件执行相同的操作

android - setuid 在 Galaxy s4 上因 PermissionDenied 失败

mysql - 在整个表中搜索一个单词 - MySQL

vb.net - WCF : Could not establish trust relationship for the SSL/TLS secure channel with authority error

excel - 如何将 Excel 单元格的内容设置为等于字符串变量?

VBA 替换 - 语法错误?