Попробуйте использовать Microsoft.Office.Interop.Excel с VB.NET в Linux - PullRequest
0 голосов
/ 18 сентября 2018

Я хотел бы использовать макрос для нескольких исключений автоматически в моем linux (Debian 9).поэтому я немного искал и обнаружил, что это возможно с помощью 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, и у меня ошибка: error BC30002: The type 'Excel.Workbook' is not defined.

Я нашел много ответов, которые дают хороший смысл:
Imports Excel = Microsoft.Office.Interop.Excel
, но этого недостаточно.Я также нашел решения с использованием Visual Studio, но у меня его нет и я не хочу ...

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Спасибо Терри Кармену за его ответ.
Мы нашли другой ответ без использования макроса VB и Excel для наших нужд.В случае, когда нас заставили бы использовать VB и Excels, мы могли бы сделать это под macOS.

0 голосов
/ 18 сентября 2018

Слой Excel Interop требует (дождитесь его ...) Excel.8 -)

Если вы не нашли копию Microsoft Office для Linux и все устройства Magic, которые реализуют интерфейс COM, вам не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...