2017-01-16 1 views
0

J'ai le code suivant pour ajouter des bordures à une ligne:Pourquoi les bordures ne sont-elles pas appliquées à ma rangée supérieure (cellules Aspose)?

Range _range; 
_range = customerWorksheet.Cells.CreateRange("A1", "P1"); 
_range.SetOutlineBorders(CellBorderType.Hair, Color.Black); 

... mais il ne fonctionne pas - pas de frontières apparaissent sur cette ligne supérieure (ligne « 1 »):

enter image description here Pourquoi pas, et comment puis-je ajouter ces bordures, comme cela est fait pour le reste de la feuille?

Voici un extrait de code pour cette ligne supérieure, montrant comment une cellule est ajouté:

Cell PAItemCell = customerWorksheet.Cells[rowToPopulate, PAITEMCODE_COL]; 
PAItemCell.PutValue(frbdbc.PAItemCode, true); 
var paiStyle = PAItemCell.GetStyle(); 
paiStyle.Font.Name = fontForSheets; 
paiStyle.IsTextWrapped = false; 
PAItemCell.SetStyle(paiStyle); 

Et voici comment les frontières sont ajoutées à la partie de données de la feuille (théoriquement, il devrait fonctionner pour la rangée du haut, aussi, sans que la tentative ci-dessus soit même nécessaire):

private void BorderizeDataPortionOfCustomerSheet() 
{ 
    int rowsUsed = customerWorksheet.Cells.Rows.Count; 
    int colsUsed = SHIPVARIANCE_COL; 

    string bottomRightRange = string.Format("P{0}", rowsUsed); 
    var range = customerWorksheet.Cells.CreateRange("A1", bottomRightRange); 

    //Setting border for each cell in the range 
    var style = workBook.CreateStyle(); 
    style.SetBorder(BorderType.BottomBorder, CellBorderType.Thin, Color.Black); 
    style.SetBorder(BorderType.LeftBorder, CellBorderType.Thin, Color.Black); 
    style.SetBorder(BorderType.RightBorder, CellBorderType.Thin, Color.Black); 
    style.SetBorder(BorderType.TopBorder, CellBorderType.Thin, Color.Black); 

    for (int r = range.FirstRow; r < range.RowCount; r++) 
    { 
     for (int c = range.FirstColumn; c < range.ColumnCount; c++) 
     { 
      Cell cell = customerWorksheet.Cells[r, c]; 
      cell.SetStyle(style, new StyleFlag() 
      { 
       TopBorder = true, 
       BottomBorder = true, 
       LeftBorder = true, 
       RightBorder = true 
      }); 
     } 
    } 

    //Setting outline border to range 
    range.SetOutlineBorder(BorderType.TopBorder, CellBorderType.Thin, Color.Black); 
    range.SetOutlineBorder(BorderType.BottomBorder, CellBorderType.Thin, Color.Black); 
    range.SetOutlineBorder(BorderType.LeftBorder, CellBorderType.Thin, Color.Black); 
    range.SetOutlineBorder(BorderType.RightBorder, CellBorderType.Thin, Color.Black); 

    customerWorksheet.FreezePanes(FIRST_DATA_ROW, SHORTNAME_COL, rowsUsed, colsUsed); 
} 

Répondre

1

Il semble que vous mélangez les choses. Eh bien, si vous appliquez la bordure de contour à une plage "A1: P1" dans votre code à la première place, puis si vous appliquez à nouveau les styles/formatages aux cellules ou spécifiez les limites de contour pour la plage (y compris la première rangée Encore une fois, cela remplacerait sûrement la mise en forme existante que vous avez appliquée précédemment. Donc, veuillez vous assurer que vous avez bien écrit votre code et que les deux segments de code n'interfèrent pas entre les formats des autres.

Je travaille comme Support developer/Evangelist chez Aspose.

+0

J'ai ajouté le code "again" car le premier ne fonctionnait pas: pas de bolding, pas d'alignement à gauche, pas de coloration de fond. Mais toutes ces choses fonctionnent maintenant. La frontière n'est pas, cependant ... pourquoi pas? La bordure précédente a été faite pour la feuille entière, qui a fonctionné - jusqu'à ce que je reformaté cette première rangée, puisque la première tentative ne fonctionnait pas. –