标签: openoffice-basic

如何保持前导零并在openoffice calc公式中添加逗号?

我在开放式办公室连续6个字段,第1个是单词,第2个,第3个和第4个是前导零的数字,第5个和第6个是常规数字.我如何将它们加在一起,并在它们之间用逗号连接,以便保持领先的零点?

openoffice-calc openoffice-basic

6
推荐指数
1
解决办法
9905
查看次数

如何在Star Basic中检查内部链接是否损坏?

我正在为LibreOffice Writer创建一个Basic宏来检查内部链接是否损坏.简而言之:

  • 生成所有锚点的列表
  • 循环遍历文档,查找内部超链接
  • 如果内部超链接不在锚列表中,则打开它进行编辑(并停止)

我的代码有一些未解决的问题:

  1. (内fnBuildAnchorList)我们如何获得每个标题的编号?例如,如果第一个1级标题文本是"简介",则正确的锚是#1.Introduction|outline我们正在录制的Introduction|outline
  2. (内subInspectLink)我们如何正确测试标题的超链接?我注意到,当我手动跟踪指向标题的链接时,它会在编号相同时成功,但也会在文本相同时成功.
    例如,如果有内部链接#1.My first heading|outline,可以使用超链接到达,#1.Previous header name|outline 也可以使用超链接#2.3.5.My first heading|outline
  3. (内subInspectLink)我们如何打开特定的超链接进行编辑?我们传递参数.uno:EditHyperlink吗?我们移动光标吗?(我发现的所有动作都是相对的,例如.uno:GoRight)我们是否使用文本部分.Start.End属性?
REM  *****  BASIC  *****
Option Explicit


' PrintArray displays a MsgBox with the whole array
' for DEBUG purposes only
Sub subPrintArray(sTitle as String, theArray() as String)
    Dim sArray
    sArray = sTitle & ":" & Chr(13) & …
Run Code Online (Sandbox Code Playgroud)

hyperlink openoffice-basic libreoffice-basic libreoffice-writer

5
推荐指数
1
解决办法
161
查看次数

LibreOffice/OpenOffice Calc:VBscript,将XLS表格导出为CSV

我正在尝试编写一段时间的脚本,但似乎它的一部分不起作用.

情况:我需要一个VB脚本,可以在任何Windows XP或7系统上使用任何LibreOffice(/ OpenOffice)Calc(在我的情况下为3.5.4)安装,以便将xls导出到csv(与csv文件一样多的csv文件) XLS).在这种情况下,它必须是VBS和LibreOffice.没有安装宏,一切由vbscript外部控制.

因此,第一步是使用宏录制器以获得正确的滤镜设置.

StarBasic宏:

    dim document   as object
    dim dispatcher as object

    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

    dim args1(2) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "URL"
    args1(0).Value = "file:///C:/Users/lutz/Desktop/test.csv"
    args1(1).Name = "FilterName"
    args1(1).Value = "Text - txt - csv (StarCalc)"
    args1(2).Name = "FilterOptions"
    args1(2).Value = "9,0,76,1,,0,false,true,true"

    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
Run Code Online (Sandbox Code Playgroud)

此宏(在LibreOffice中)写入当前工作表的CSV(在LO告诉我仅保存当前工作表之后),编码UTF-8,字段分隔符Tab,没有文本分隔符.这有效.

我试图让这个在我的vbs中工作,但绝对没有.所以我在OpenOffice和LibreOffice论坛中搜索了很多,这里是stackoverflow等,并使用了另一种方法.

问题:每次保存文件时,无论我使用哪种过滤器或过滤器选项,它都会将它们保存为ODS.它总是保存到压缩的OpenDocument.我尝试了很多过滤器,甚至PDF.当我只使用FilterName属性时它似乎与pdf一起使用但不知何故它不再起作用.我不知道为什么.

代码:

    ' Scripting object
    Dim wshshell
    ' File system object
    Dim objFSO
    ' OpenOffice / LibreOffice Service …
Run Code Online (Sandbox Code Playgroud)

csv vbscript xls libreoffice openoffice-basic

4
推荐指数
1
解决办法
2万
查看次数