【问题标题】:LibreOffice Calc macro to save a named sheet in a csv fileLibreOffice Calc 宏将命名工作表保存在 csv 文件中
【发布时间】:2020-07-01 16:25:15
【问题描述】:

有一个名为“Data.ods”的 Calc 文件和一个名为“DataSheet”的工作表,应使用 {tab} 作为字段分隔符和双引号数据字段将其保存在当前目录的“Data.csv”文件中.如何在 LO Basic 宏中实现这一点?

【问题讨论】:

    标签: libreoffice libreoffice-calc libreoffice-basic


    【解决方案1】:

    您尚未指定宏是否应打开“Data.ods”电子表格或是否已打开。此代码适用于当前电子表格:

    Sub Generate_CSV()
    Dim sURL As String ' URL of current spreadsheet
    Dim FileN As String ' URL of target CSV-file
    Dim oCurrentController As Object ' Before save - activate sheet sSheetName
    Dim storeParms(2) as new com.sun.star.beans.PropertyValue 
    Const sSheetName = "DataSheet"
       GlobalScope.BasicLibraries.LoadLibrary("Tools") ' Only for GetFileName
       sURL = thisComponent.getURL()
       If Not thisComponent.getSheets().hasByName(sSheetName) Then
            MsgBox ("Sheet """ & sSheetName & """ Not Found In Current Spreadsheet")
            Exit Sub
       EndIf
       FileN = GetFileNameWithoutExtension(sURL) & ".csv" ' For Data.ods it will be Data.csv
    REM Options to StoreTo:
       storeParms(0).Name = "FilterName"
       storeParms(0).Value = "Text - txt - csv (StarCalc)"
       storeParms(1).Name = "FilterOptions"
       storeParms(1).Value = "9,34,,65535,1,,0,true,true,true" 
    REM About this string see https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
       storeParms(2).Name = "Overwrite"
       storeParms(2).Value = True
    REM Activate sheet for export - select "DataSheet"
       thisComponent.getCurrentController().setActiveSheet(thisComponent.getSheets().getByName(sSheetName))
    REM storeToURL can raises com.sun.star.io.IOException! Only now:
    On Error GoTo Errorhandle
    REM Export
       thisComponent.storeToURL(FileN,storeParms())
       MsgBox ("No Error Found,Upload file is saved : """ + ConvertFromUrl(FileN) + """.")
    Exit Sub
    
    Errorhandle:
        MsgBox ("Modifications Are Not Saved,Upload File Not Generated" & chr(13) _
        & "May be table " & ConvertFromUrl(FileN) & " is open in another window?")
        Exit Sub
        Resume
    End Sub
    

    (发布于 2011 年 11 月 18 日 there

    【讨论】:

      猜你喜欢
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多