Bir sütunun WrapText = true değerini ayarladıktan sonra, satırın yeni yüksekliğinin ne olacağını görmek istiyorum (yani metin sardığında, kaç satır için). Bir satırın Yükseklik özelliğinin güncellenmediği anlaşılıyor.epplus: Sütun wraptext stilini true değerine ayarladıktan sonra bir satırın yüksekliğini nasıl alabilirim?
ExcelPackage pkg = new ExcelPackage();
ExcelWorksheet sheet = pkg.Workbook.Worksheets.Add("Test");
// height is 15.0
double heightBefore = sheet.Row(1).Height;
sheet.Cells[1, 1].Value = "Now is the time for all good men to come to the aid of their country";
ExcelColumn col = sheet.Column(1);
// this will resize the width to 60
col.AutoFit();
if (col.Width > 50)
{
col.Width = 50;
// this is just a style property, and doesn't actually execute any recalculations
col.Style.WrapText = true;
}
// so this is still 15.0. How do I get it to compute what the size will be?
double heightAfter = sheet.Row(1).Height;
// open the xls, and the height is 30.0
pkg.SaveAs(new System.IO.FileInfo("text.xlsx"));
Aslında, Yükseklik özelliği (veya altta yatan alan _height) için bir arama sadece mülkiyet setter tarafından ayarlandığını gösterir ve hiç içerik gibi (başka bir şey temel alınarak belirlenecektir görünmüyor Sıra).
Bir satır için yenilenmiş bir Yüksekliğe nasıl ulaşabileceğimiz hakkında herhangi bir fikir var mı?
Teşekkür
Neredeyse burada cevabınız var. Karşılaşacağınız problem, bir alandaki (veya kısa çizgi vb.) Satırları kesmeyi seçerek Excel ile ilgili olmalıdır. Tam olarak 50 karakterden ayrılmayacağından, sonunda fazladan bir satır olabilir (yukarıdaki örnekte 50 yerine 16'yı seçin). Eğer zamanım varsa, bunu yapmak için bir rutin çalışacağım, ama basit olmayabilir. – user1689571
Ahh, evet haklısın, üzgünüm, bunu çok özledim. Ne bulabileceğimi göreceğim ama evet, muhtemelen güzel olmayacak. – Chris
Soo, söylediğin gibi, Excel'in sarılı metninizle ne yapacağını anlamaya çalışmak doğru değil. Ama düşünüyordum da, hesaplanan değere gerçekten yaklaşabilir ve satır yüksekliğini manuel olarak ayarlayabilirseniz? Bu şekilde, değerin ne olacağını kontrol edersiniz. Cevabı şimdi olası bir çözümle güncelliyorum. – Chris