public void TestCharSet() { CT_Font ctFont = new CT_Font(); CT_IntProperty prop = ctFont.AddNewCharset(); prop.val = (FontCharset.ANSI.Value); ctFont.SetCharsetArray(0, prop); XSSFFont xssfFont = new XSSFFont(ctFont); Assert.AreEqual(FontCharset.ANSI.Value, xssfFont.Charset); xssfFont.SetCharSet(FontCharset.DEFAULT); Assert.AreEqual(FontCharset.DEFAULT.Value, ctFont.GetCharsetArray(0).val); // Try with a few less usual ones: // Set with the Charset itself xssfFont.SetCharSet(FontCharset.RUSSIAN); Assert.AreEqual(FontCharset.RUSSIAN.Value, xssfFont.Charset); // And Set with the Charset index xssfFont.SetCharSet(FontCharset.ARABIC.Value); Assert.AreEqual(FontCharset.ARABIC.Value, xssfFont.Charset); // This one isn't allowed Assert.AreEqual(null, FontCharset.ValueOf(9999)); try { xssfFont.SetCharSet(9999); Assert.Fail("Shouldn't be able to Set an invalid charset"); } catch (POIXMLException) { } // Now try with a few sample files // Normal charset XSSFWorkbook workbook = XSSFTestDataSamples.OpenSampleWorkbook("Formatting.xlsx"); Assert.AreEqual(0, ((XSSFCellStyle)workbook.GetSheetAt(0).GetRow(0).GetCell(0).CellStyle).GetFont().Charset ); // GB2312 charact Set workbook = XSSFTestDataSamples.OpenSampleWorkbook("49273.xlsx"); Assert.AreEqual(134, ((XSSFCellStyle)workbook.GetSheetAt(0).GetRow(0).GetCell(0).CellStyle).GetFont().Charset ); }
/** * Copy font attributes from CTFont bean into CTRPrElt bean */ private void SetRunAttributes(CT_Font ctFont, CT_RPrElt pr) { if (ctFont.SizeOfBArray() > 0) pr.AddNewB().val = (ctFont.GetBArray(0).val); if (ctFont.sizeOfUArray() > 0) pr.AddNewU().val =(ctFont.GetUArray(0).val); if (ctFont.sizeOfIArray() > 0) pr.AddNewI().val =(ctFont.GetIArray(0).val); if (ctFont.sizeOfColorArray() > 0) { CT_Color c1 = ctFont.GetColorArray(0); CT_Color c2 = pr.AddNewColor(); if (c1.IsSetAuto()) { c2.auto = (c1.auto); c2.autoSpecified = true; } if (c1.IsSetIndexed()) { c2.indexed = (c1.indexed); c2.indexedSpecified = true; } if (c1.IsSetRgb()) { c2.SetRgb(c1.rgb); c2.rgbSpecified = true; } if (c1.IsSetTheme()) { c2.theme = (c1.theme); c2.themeSpecified = true; } if (c1.IsSetTint()) { c2.tint = (c1.tint); c2.tintSpecified = true; } } if (ctFont.sizeOfSzArray() > 0) pr.AddNewSz().val = (ctFont.GetSzArray(0).val); if (ctFont.sizeOfNameArray() > 0) pr.AddNewRFont().val = (ctFont.name.val); if (ctFont.sizeOfFamilyArray() > 0) pr.AddNewFamily().val =(ctFont.GetFamilyArray(0).val); if (ctFont.sizeOfSchemeArray() > 0) pr.AddNewScheme().val = (ctFont.GetSchemeArray(0).val); if (ctFont.sizeOfCharsetArray() > 0) pr.AddNewCharset().val = (ctFont.GetCharsetArray(0).val); if (ctFont.sizeOfCondenseArray() > 0) pr.AddNewCondense().val = (ctFont.GetCondenseArray(0).val); if (ctFont.sizeOfExtendArray() > 0) pr.AddNewExtend().val = (ctFont.GetExtendArray(0).val); if (ctFont.sizeOfVertAlignArray() > 0) pr.AddNewVertAlign().val = (ctFont.GetVertAlignArray(0).val); if (ctFont.sizeOfOutlineArray() > 0) pr.AddNewOutline().val =(ctFont.GetOutlineArray(0).val); if (ctFont.sizeOfShadowArray() > 0) pr.AddNewShadow().val =(ctFont.GetShadowArray(0).val); if (ctFont.sizeOfStrikeArray() > 0) pr.AddNewStrike().val = (ctFont.GetStrikeArray(0).val); }