16

問題は、そのセルに長い文字列を持つセルを参照する数式が含まれている場合、セルの内容がラップされないことです。

CodePlexで、この問題に関するスレッドと、問題を確認するための簡単なコードを見つけました。

var generated = new XLWorkbook();
var workSheet = generated.AddWorksheet("Test");
workSheet.Cell("B1").Style.Alignment.WrapText = true;
workSheet.Cell("B1").Value = "hello hello hello hello hello";
workSheet.Cell("A3").FormulaA1 = "B1";
workSheet.Cell("A3").Style.Alignment.WrapText = true;
generated.SaveAs("Generated.xlsx");

また、セルをラップする代わりに、行の高さを手動で設定しようとしました:

workSheet.Row(3).Height = workSheet.Row(1).Height;

しかし、どちらも成功しませんでした。

これについて私にできることはありますか?


ピーター・アルバートのコメントに従って、セットの行をAutoFit. ClosedXMLでこれを行うために私が見つけた唯一のものはworkSheet.Row(3).AdjustToContent();. しかし、これもうまくいきませんでした(特定の列の内容を調整することもできませんでした)。

4

6 に答える 6

22

コンテンツに調整を適用する代わりに、このようにラップテキストを適用できます

var generated = new XLWorkbook();
var workSheet = generated.AddWorksheet("Test");
worksheet.Cell(3, 2).Value = "Hello Hello Hello Hello Hello Hello Name";    
worksheet.Cell(3, 2).Style.Alignment.WrapText = true;

両方を適用する場合は、AdjustToContents の後に使用します。

var generated = new XLWorkbook();
var workSheet = generated.AddWorksheet("Test");
worksheet.Columns(2, 20).AdjustToContents();    
worksheet.Cell(3, 2).Value = "Hello Hello Hello Hello Hello Hello Name";
worksheet.Cell(3, 2).Style.Alignment.WrapText = true;
于 2015-10-09T06:12:18.970 に答える
8

私はこれを使います

 xlWorkSheet.Range["A4:A4"].Cells.WrapText = true;
于 2015-02-05T13:39:49.350 に答える
0

申し訳ありませんが、まだコメントを書くことができません... AutoFit は ClosedXML のプロパティではありません。AdjustToContents について、私のバージョン (2014 年 7 月 26 日、0.72.3 だと思います) では、WordWrap プロパティ (長い行を分割する) を無視します。主なチェックです

            if (c.HasRichText || textRotation != 0 || c.InnerText.Contains(Environment.NewLine))
            {
               // omissis...
            }
            else
                thisHeight = c.Style.Font.GetHeight( fontCache);

この実装は、自動折り返しのためにセルが複数行の場合、正確な高さを無視します。そのため、AdjustToContents + AutoWrap は機能しません。コンテンツのサイズの高さが必要な場合は、AdjustToContents の呼び出しを避ける必要があります。この動作は、XL IsAutoHeight プロパティと互換性がありません。

于 2014-07-26T12:52:49.110 に答える
0

私のSetWrapText();ために働いた

于 2018-09-12T13:00:56.167 に答える