2016-08-11 1 views
-1

J'ai une rangée d'en-têtes de colonne que je suis mise en place comme ceci:Pourquoi les étiquettes de texte ne sont-elles pas ajoutées à ces cellules (EPPlus)?

private static readonly int COLUMN_HEADER_ROW = 6; 
private static readonly int COLUMN_COUNT = 15; 
private static readonly int COLUMN_HEADER_ROW_HEIGHT = 48; 
private static readonly int PLATYPUS_DISTRIBUTOR_COLUMN = 1; 
private static readonly int RESTAURANT_LOCATION_COLUMN = 2; 
private static readonly int RESTAURANT_LOCATION_COLUMN_WIDTH = 36; 
private static readonly int TOTAL_PACKAGE_COUNT_COLUMN = 15; 

. . . 

// Add column headers 
using (var rowRng = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, PLATYPUS_DISTRIBUTOR_COLUMN, COLUMN_HEADER_ROW, COLUMN_COUNT]) 
{ 
    rowRng.Style.Font.Name = fontForSheet; 
    rowRng.Merge = true; 
    rowRng.Style.Font.Size = 12; 
    rowRng.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; 
    rowRng.Style.VerticalAlignment = ExcelVerticalAlignment.Center; 
    rowRng.Style.Fill.PatternType = ExcelFillStyle.Solid; 
    deliveryPerformanceWorksheet.Row(COLUMN_HEADER_ROW).Height = COLUMN_HEADER_ROW_HEIGHT; 
    rowRng.Style.Fill.BackgroundColor.SetColor(Color.LightSkyBlue); 
    // set borders 
    rowRng.Style.Border.BorderAround(ExcelBorderStyle.Thin); 
    rowRng.Style.Border.Top.Style = ExcelBorderStyle.Thin; 
    rowRng.Style.Border.Left.Style = ExcelBorderStyle.Thin; 
    rowRng.Style.Border.Right.Style = ExcelBorderStyle.Thin; 
    rowRng.Style.Border.Bottom.Style = ExcelBorderStyle.Thin; 
} 

J'essaie ensuite d'ajouter du texte à chaque cellule sur cette ligne comme ceci:

// Col A 
using (var distributorCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, PLATYPUS_DISTRIBUTOR_COLUMN]) 
{ 
    distributorCell.Value = "Platypus Distributor"; 
    distributorCell.Style.Font.Bold = true; 
} 

// Col B 
using (var sunRestaurantLocationCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, RESTAURANT_LOCATION_COLUMN]) 
{ 
    sunRestaurantLocationCell.Value = "Restaurant Location"; 
    deliveryPerformanceWorksheet.Column(RESTAURANT_LOCATION_COLUMN).Width = RESTAURANT_LOCATION_COLUMN_WIDTH; 
    sunRestaurantLocationCell.Style.Font.Bold = true; 
} 

. . . 

// Col O 
using (var totalPackageCountHeaderCell = deliveryPerformanceWorksheet.Cells[COLUMN_HEADER_ROW, TOTAL_PACKAGE_COUNT_COLUMN]) 
{ 
    totalPackageCountHeaderCell.Value = String.Format("Total Package{0}Count", Environment.NewLine); 
    totalPackageCountHeaderCell.Style.WrapText = true; 
    totalPackageCountHeaderCell.Style.Font.Bold = true; 
} 

... mais la seule valeur qui est écrite dans une cellule est "Platypus Distributor" et elle est placée dans la colonne 3 plutôt que dans la colonne 1.

Pourquoi une seule valeur de texte est-elle affectée et pourquoi est-elle placée dans la mauvaise cellule/colonne?

+0

S'il vous plaît [voir] (http://meta.stackexchange.com/questions/19190/should-questions-include- tags-in-their-titles) - et qu'est-ce que cela a à voir avec Excel? – pnuts

Répondre

1

ou simplement commenter supprimer l'affectation "Fusion", à savoir cette ligne:

rowRng.Merge = true;