使用ClosedXML单元格进行修剪

时间:2014-01-09 15:38:47

标签: closedxml

我有以下示例代码。我遇到的问题是,在我显示评论的部分的第一列,它被修剪。我喜欢做的是显示注释,它包含所需的多个字段。目前它被修剪。我正在使用Excel 2010.

     var path = Path.Combine(driveLetter, "Sample", "Report_-Blank.xlsx");

     XLWorkbook workbook = new XLWorkbook(path);

     //Read worksheet at position 1 i.e. First worksheet in excel
     var ws = workbook.Worksheet(1);

     // Facility Tested
     ws.Cell(1, 19).Value = "TestLocation";
     ws.Cell(1, 19).Style.Font.FontSize = 20;

     // Date of Collection
     ws.Cell(2, 19).Value = "10/12/2013";
     ws.Cell(2, 19).Style.Font.FontSize = 20;

     // Collector's Email
     ws.Cell(3, 19).Value = "james@gmail.com";
     ws.Cell(3, 19).Style.Font.FontSize = 20;

     // LabId
     ws.Cell(5, 19).Value = "1344";
     ws.Cell(5, 19).Style.Font.FontSize = 20;

     // Date Analyzed
     ws.Cell(6, 19).Value = "12/3/2013";
     ws.Cell(6, 19).Style.Font.FontSize = 20;


     // Sample #
     ws.Cell(20, 1).Value = "1";
     ws.Cell(20, 1).Style.Font.FontSize = 20;
     ws.Cell(20, 1).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;

     // Location 
     ws.Cell(20, 2).Value = "Closed Loop1";
     ws.Cell(20, 2).Style.Font.FontSize = 20;
     ws.Cell(20, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;

     // Comments

     ws.Cell(22, 1).Value = "COMMENTS:";
     ws.Cell(22, 1).Style.Font.FontSize = 25;
     ws.Cell(22, 1).Style.Font.Bold = true;
     ws.Cell(22, 1).Style.Font.Underline = XLFontUnderlineValues.Single;

     // Comment 1
     ws.Cell(23, 1).Value = "Sample 1: Test is a test of how to display sample 1 445454@ ";
     ws.Cell(23, 1).Style.Font.FontSize = 20;
     ws.Cell(23, 1).Style.Border.OutsideBorder = XLBorderStyleValues.Thin;

     MemoryStream ms = new MemoryStream();
     workbook.SaveAs(ms);

     return ms;

1 个答案:

答案 0 :(得分:2)

如果右侧的单元格为空,则Excel应在空单元格上显示注释单元格中的文本。如果不是这种情况,您可以合并一些单元格以获得更多空间:

ws.Range(23, 1, 23, x).Merge().Value = "Sample 1: ...";

其中x是您要合并的单元格数。

如果没有足够的空单元格来为注释腾出空间,您还可以激活包装:

ws.Cell(23, 1).Style.Alignment.SetWrapText(true);