TOP

Sentence Case LibreOffice 的函数 Calc

YLC Utilities logo

SENTENCECASE() 说明

SENTENCECASE() 函数旨在将现有文本转换为句子格式并返回以下形式的一组单词: "Sentence case function"

Sentence Case 将由句点、感叹号或问号分隔的行分成单独的句子。然后,将句子中除第一个字母之外的所有单词转换为小写,然后将所有元素组合成一个连续的文本。

SENTENCECASE() 函数可用于纠正整个文本中句子中字母的大小写。


StarBASIC SENTENCECASE() 的代码

以下是用于创建自定义函数的宏代码,该函数可以对 LibreOffice Calc 中的句子 (Sentence Case) 中的单词进行大小写调整。

打开菜单 Tools - Macros - Edit Macros...,选择 Module1 并将以下文本复制到模块中:

Function SentenceCase(ByVal str As String) As String
  'moonexcel.com.ua
  Dim sentences As Variant
  Dim i         As Integer
  Dim FCalc     As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")    
  
  str = Replace(str,"-"," ")
  str = Replace(str,"_"," ")
  str = FCalc.callFunction("TRIM", Array(str))
  str = LCase(str)
  str = FCalc.callFunction("REGEX", Array(str,"([.!?])(\s)(\w)","$1#$3","g"))
  
  sentences = Split(str, "#")
    
  For i = LBound(sentences) To UBound(sentences)       
    sentences(i) = UCase(Left(sentences(i), 1)) & Mid(sentences(i), 2)       
  Next i
    
  SentenceCase = Join(sentences," ")
End Function

然后关闭 Macro Editor,返回到 LibreOffice Calc 并在任何单元格中使用我们的新函数。

使用扩展

您还可以使用该功能 SENTENCECASE() 通过安装免费扩展 YouLibreCalc.oxt 或其全功能版本 YLC_Utilities.oxt

之后,该功能将在 LibreOffice Calc 中打开的所有文件中可用。