如何使用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 中执行等效操作?
你看过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));