如何使用C#和LibreOffice/OpenOffice在电子表格单元格中设置粗体文本

本文关键字:单元格 设置 文本 电子表格 何使用 LibreOffice OpenOffice | 更新日期: 2024-10-30 11:13:36

我正在转换我们的一个内部应用程序来使用OpenOffice/LibreOffice以及MsOffice。

在使用 C#/.NET 的 Excel 电子表格中,仅将单元格中的部分文本设置为粗体相当简单。 它看起来像这样:

sheet.Range["A1"].Characters[startIndex, length].Font.Bold = true;

您如何在 OO/LO 中执行等效操作?

如何使用C#和LibreOffice/OpenOffice在电子表格单元格中设置粗体文本

你看过XML文件格式吗?http://www.openoffice.org/xml/xml_specification.pdf

我不确定是否打开Excel,但是在MS-Excel中,您可以定义字体并附加它。

var fonts = new Fonts();
            var font = new DocumentFormat.OpenXml.Spreadsheet.Font();
            var fontName = new FontName {Val = StringValue.FromString("Arial")};
            var fontSize = new FontSize {Val = DoubleValue.FromDouble(11)};
            font.FontName = fontName;
            font.FontSize = fontSize;
            fonts.Append(font);
            var cellFormats = new CellFormats();
                     cellFormats.Append(fonts);

我不确定这是否是最有效的方法,但它有效。 基本思想是使用示例代码将文本插入单元格,然后在所需的子区域上创建光标,并在子区域上设置 CharWeight 属性。

var xCellText = (unoidl.com.sun.star.text.XText)cell;
var xTextCursor = xCellText.createTextCursor();
xCellText.insertString(xTextCursor, newLine, false);
xTextCursor.gotoStart(false);
xTextCursor.goRight((short)boldStartIndex, false);
xTextCursor.goRight((short)boldLength, true);
var xPropSet = (XPropertySet)xTextCursor;
xPropSet.setPropertyValue("CharWeight", new uno.Any(unoidl.com.sun.star.awt.FontWeight.BOLD));