Excel zawiera predefiniowane formaty do formatowania ciągów na różne sposoby. Atrybut s
na elemencie komórki będzie odnosił się do stylu, który będzie odnosił się do formatu liczbowego, który będzie odpowiadał pożądanemu formatowi procentowemu. Więcej informacji można znaleźć pod numerem question/answer.
Oto obiekt CellFormat, który należy utworzyć, aby maska 0.00% została zastosowana do numeru. W tym przypadku chcesz predefiniowany numer formatu 10 lub 0,00%:
CellFormat cellFormat1 = new CellFormat(){ NumberFormatId = (UInt32Value)10U, FontId = (UInt32Value)0U, FillId = (UInt32Value)0U, BorderId = (UInt32Value)0U, FormatId = (UInt32Value)0U, ApplyNumberFormat = true };
Oto szybki sposób wstawić CellFormat w skoroszycie:
CellFormats cellFormats = workbookPart.WorkbookStylesPart.Stylesheet.Elements<CellFormats>().First();
cellFormats.Append(cellFormat);
uint styleIndex = (uint)cellFormats.Count++;
będziesz musiał dostać komórkę ma 3.6 w niej i ustaw jego s
atrybut (StyleIndex) do nowo włożonego formatu komórek:
Cell cell = workSheetPart.Worksheet.Descendants<Cell>().SingleOrDefault(c => cellAddress.Equals("A1"));
cell.StyleIndex = styleIndex;
Ten przepływ działał, ponieważ możemy mieć dowolne formatowanie komórek za pomocą tego procesu. Dzięki ssyladin – Selwyn
Bez obaw. Właściwie poświęć około 30 minut, próbując sformatować "ręcznie" tylko za pomocą OpenXML i ostatecznie zrezygnował. Zachowałem pewność, że otrzymam skorumpowany arkusz roboczy. Jest to dla mnie dobra odpowiedź, ponieważ pomaga uniknąć zależności między bibliotekami zewnętrznymi. – jklemmack
Czy Twój komentarz na temat indeksu stylu Excela oznacza, że jeśli chcesz użyć domyślnego stylu procentowego w Excelu, nie musisz dodawać nowego formatu, po prostu ustaw komórkę tak, aby styl indeksu 1? – cidthecoatrack