c# openxml excel stylesheet border error -
i making stylesheet excel sheet borders cells, , works long have no more 2 borders. when add third border, however, excel tells me there error xml when open it, when third border has right , left border. when it's top , bottom border there's no problem.
why getting error border index 2 , when has right , left border?
i'll put full code style sheet method below, specific part i'm having trouble here:
//this border index 2 (third border) new documentformat.openxml.spreadsheet.border( //error caused section //if leave right , left border out there no error //also no error if whole border border index 0 or 1 new documentformat.openxml.spreadsheet.rightborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new documentformat.openxml.spreadsheet.leftborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, // end section error caused //top , bottom borders work fine new documentformat.openxml.spreadsheet.topborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new documentformat.openxml.spreadsheet.bottomborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new diagonalborder() )//, below full code generating stylesheet
private stylesheet generatestylesheet() { return new stylesheet( new documentformat.openxml.spreadsheet.fonts( new documentformat.openxml.spreadsheet.font( // index 0 - default font. new fontsize() { val = 11 }, new documentformat.openxml.spreadsheet.color() { rgb = new hexbinaryvalue() { value = "000000" } }, new fontname() { val = "calibri" }), new documentformat.openxml.spreadsheet.font( // index 1 - bold font. new bold(), new fontsize() { val = 11 }, new documentformat.openxml.spreadsheet.color() { rgb = new hexbinaryvalue() { value = "ffffff" } }, new fontname() { val = "calibri" }), new documentformat.openxml.spreadsheet.font( // index 2 - italic font. new italic(), new fontsize() { val = 11 }, new documentformat.openxml.spreadsheet.color() { rgb = new hexbinaryvalue() { value = "000000" } }, new fontname() { val = "calibri" }), new documentformat.openxml.spreadsheet.font( // index 3 - times roman font. 16 size new fontsize() { val = 16 }, new documentformat.openxml.spreadsheet.color() { rgb = new hexbinaryvalue() { value = "000000" } }, new fontname() { val = "times new roman" }) ), new fills( new documentformat.openxml.spreadsheet.fill( // index 0 - default fill. new documentformat.openxml.spreadsheet.patternfill() { patterntype = patternvalues.none }), new documentformat.openxml.spreadsheet.fill( // index 0 - default fill. new documentformat.openxml.spreadsheet.patternfill() { patterntype = patternvalues.none }), new documentformat.openxml.spreadsheet.fill( // index 2 - gray fill. new documentformat.openxml.spreadsheet.patternfill( new documentformat.openxml.spreadsheet.foregroundcolor() { rgb = new hexbinaryvalue() { value = "0000ff" } } ) { patterntype = patternvalues.solid }) ), new documentformat.openxml.spreadsheet.borders( new documentformat.openxml.spreadsheet.border( // index 0 - default border. new documentformat.openxml.spreadsheet.leftborder(), new documentformat.openxml.spreadsheet.rightborder(), new documentformat.openxml.spreadsheet.topborder(), new documentformat.openxml.spreadsheet.bottomborder(), new diagonalborder()), new documentformat.openxml.spreadsheet.border( // index 1 - applies left, right, top, bottom border cell new documentformat.openxml.spreadsheet.topborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thin }, new documentformat.openxml.spreadsheet.bottomborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new diagonalborder() ), new documentformat.openxml.spreadsheet.border( // index 1 - applies left, right, top, bottom border cell new documentformat.openxml.spreadsheet.rightborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new documentformat.openxml.spreadsheet.leftborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new documentformat.openxml.spreadsheet.topborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new documentformat.openxml.spreadsheet.bottomborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new diagonalborder() )//, //new documentformat.openxml.spreadsheet.border( // index 1 - applies left, right, top, bottom border cell // new documentformat.openxml.spreadsheet.topborder( // new documentformat.openxml.spreadsheet.color() { auto = true } // ) // { style = borderstylevalues.thick }, // new documentformat.openxml.spreadsheet.bottomborder( // new documentformat.openxml.spreadsheet.color() { auto = true } // ) // { style = borderstylevalues.thick }, // new documentformat.openxml.spreadsheet.rightborder( // new documentformat.openxml.spreadsheet.color() { auto = true } // ) // { style = borderstylevalues.thick }, // new diagonalborder() //) ), new cellformats( //new cellformat() { fontid = 1, fillid = 1, borderid = 0 }//debug new cellformat() { fontid = 0, fillid = 0, borderid = 0 }, // index 0 - default cell style. if cell not have style index applied use style combination instead new cellformat( new alignment() { horizontal = horizontalalignmentvalues.center, vertical = verticalalignmentvalues.center } ) { fontid = 1, fillid = 2, borderid = 0, applyfont = true } ), new cellformat( new alignment() { horizontal = horizontalalignmentvalues.right, vertical = verticalalignmentvalues.bottom } ) { fontid = 0, fillid = 1, borderid = 0 }, new cellformat( new alignment() { horizontal = horizontalalignmentvalues.right, vertical = verticalalignmentvalues.bottom } ) { fontid = 1, fillid = 0, borderid = 2 } ); // return }
the border elements defined sequence , therefore have explicit order. leftborder has come before rightborder need reverse order in code:
new documentformat.openxml.spreadsheet.leftborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick }, new documentformat.openxml.spreadsheet.rightborder( new documentformat.openxml.spreadsheet.color() { auto = true } ) { style = borderstylevalues.thick },
Comments
Post a Comment