2016-04-06 25 views
0

Excel Interop kodunu Spreadsheet Light'a dönüştürmeye çalışıyorum. Ben taklit istiyorum eski Interop'un kodudur:Elektronik Tablo Işığında tanımlı bir adın (aralık) satır yüksekliğini nasıl ayarlayabilirim?

var columnHeaderRowRange = _xlSheetFillRateByDistributorByCustomer.Range[ 
    _xlSheetFillRateByDistributorByCustomer.Cells[1, 1], 
    _xlSheetFillRateByDistributorByCustomer.Cells[1, 16]]; 
columnHeaderRowRange.Interior.Color = Color.LightBlue; 
columnHeaderRowRange.RowHeight = 12; 
columnHeaderRowRange.Font.Bold = true; 
columnHeaderRowRange.Font.Size = 11; 

Ben Çizelge Işık ese de, şöyle (bir dizi, yeni bir atama veya Elektronik Tabloyu Light'ın açıklama) tanımlı bir ad yaratıyorum:

SLDocument sl; 
. . . 
sl.SetDefinedName("columnHeaderRowRange", "Sheet1!$A$1:$P$4"); 

ben böyle aralığı şey için satır yüksekliğini ayarlamak düşünürdüm:

sl.SetRowHeight("columnHeaderRowRange", 12); 

... ama bu işe yaramazsa; ilk arg bir int (satır dizini) olmalıdır.

sl.SetCellStyle("columnHeaderRowRange", headerStyle); // Remember Merle Haggard!  
:

SLStyle headerStyle = sl.CreateStyle(); 

..ve sonra şöyle tanımlanmış isme Bu stili uygulamak:

Yani ben o zaman tanımlı bir ad için geçerli olabilecek bir tarzda eklemek diye düşünmüştüm

... ama SLStyle'da, bunu yapmama izin verecek hiçbir özellik görmüyorum.

Tanımlanmış bir ad dahilindeki tüm satırların yüksekliğini nasıl kontrol edebilirim? Aynı şey etkili bir yolu ile başarılı olabilir

headerStyle.Fill.SetPattern(DocumentFormat.OpenXml. 
    Spreadsheet.PatternValues.Solid, Color.Black, Color.LightBlue); 
headerStyle.Font.Bold = true; 
headerStyle.Font.FontSize = 12; 

cevap

1

:

sl.SetRowHeight(1, 4, 12); 

... ya eğer

benim tarzında bunun yanı sıra üzerinde dönüştürülmüş Excel Interop aralığından her şey var düşünmek Son satırın ekleneceği aralığın eklenmesini istediğinizde:

var stats = sl.GetWorksheetStatistics(); 
var rowcount = stats.NumberOfRows; 
sl.SetRowHeight(1, rowcount, 12); 

Elektronik Tablo Işık ile bazı şeyler için bir Menzil, böyle bir uyum gibi kullanışlı görevleri yerine getirmek için) (GetWorksheetStatistics aracılığıyla yöntemi kullanılabilir değerleri kullanılarak oldukça kolay görünüyor her satır ve sütun: Elbette

SLWorksheetStatistics wsstats = sl.GetWorksheetStatistics(); 
int rowCount = wsstats.NumberOfRows; 
int colCount = wsstats.NumberOfColumns; 

sl.AutoFitRow(1, rowCount); 
sl.AutoFitColumn(1, colCount); 

, değerler tanımlı bir ad sağlanan bu gibi durumlarda da kullanılabilir:

sl.SetDefinedName("grandTotalRowRange", 
     string.Format("Sheet1!${0}${1}:${2}${3}", 
      GetExcelTextColumnName(SHORTNAME_BYDCBYLOC_COL), 
      rowToPopulate, 
      GetExcelTextColumnName(QTYSHIPPED_BYDCBYLOC_COL), 
      rowToPopulate) 
     ); 

sl.AutoFitRow(rowToPopulate, rowToPopulate); // autofit the one row 
sl.AutoFitColumn(SHORTNAME_BYDCBYLOC_COL, QTYSHIPPED_BYDCBYLOC_COL); // autofit the subset of columns 
İlgili konular