• C# 设置Excel数据自适应行高、列宽的2种情况


    Excel表格中,由于各种数据的复杂性,可能存在单元格中的数据字号大小、数据内容长度不一而出现,列宽过宽、过窄或者行高过大、过小的问题。常见的解决方法是调整行高、列宽。在Microsoft Excel中,在单元格格式设置中可手动设置自适应行高或自适应列宽,但通过代码,我们可以通过方法AutoFitColumns()或者AutoFitRows()来设置指定数据范围或整个工作表的自适应行高、列宽。这里设置自适应分以下2种情况来进行:

    1. 固定数据,设置行高、列宽自适应数据

    2. 固定行高、列宽,设置数据自适应行高、列宽(即缩小单元格数据字体大小适应单元格)

    使用工具Free Spire.XLS for .NET(免费版)

    注:注意在下载安装后,添加引用Spire.Xls.dll文件,如下图:

     

    【示例1】固定数据,设置行高、列宽自适应数据

     Step 1: 加载工作簿

    //创建一个Workbook类的对象,并加载测试文档
    Workbook workbook = new Workbook();
    workbook.LoadFromFile("sample.xlsx");

    Step 2: 获取指定工作表

    Worksheet worksheet = workbook.Worksheets[0];

    Step 3:设置自适应

    //设置列宽、行高为自适应(应用于指定数据范围)
    worksheet.AllocatedRange["A1:F15"].AutoFitColumns();
    worksheet.AllocatedRange["A1:F15"].AutoFitRows();
    
    ////设置列宽、行高为自适应(应用于整个工作表)
    //worksheet.AllocatedRange.AutoFitColumns();
    //worksheet.AllocatedRange.AutoFitRows();

    Step 4:保存文档

    workbook.SaveToFile("result.xlsx", FileFormat.Version2010);

    设置效果:

    全部代码:

    using Spire.Xls;
    
    namespace AutoFit_XLS
    {
        class Program
        {
            static void Main(string[] args)
            {
                //创建一个Workbook类的对象,并加载测试文档
                Workbook workbook = new Workbook();
                workbook.LoadFromFile("sample.xlsx");
    
                //获取工作表
                Worksheet worksheet = workbook.Worksheets[0];
    
                //设置列宽、行高为自适应(应用于指定数据范围)
                worksheet.AllocatedRange["A1:F15"].AutoFitColumns();
                worksheet.AllocatedRange["A1:F15"].AutoFitRows();
    
                ////设置列宽、行高为自适应(应用于整个工作表)
                //worksheet.AllocatedRange.AutoFitColumns();
                //worksheet.AllocatedRange.AutoFitRows();
    
                //保存文档
                workbook.SaveToFile("result.xlsx", FileFormat.Version2010);
                System.Diagnostics.Process.Start("result.xlsx");
            }
        }
    }
    View Code

    【示例2】固定行高、列宽,设置数据自适应行高、列宽

    Step 1:加载工作簿

    //实例化Workbook类的对象,并加载测试文档
    Workbook workbook = new Workbook();
    workbook.LoadFromFile("test.xlsx");

    Step 2:获取指定工作表

    Worksheet sheet = workbook.Worksheets[0];

    Step 3: 获取指定数据范围

    CellRange cell = sheet.Range["A1:C1"];

    Step 4: 缩小单元格字体以适应列宽

    CellStyle style = cell.Style;
    style.ShrinkToFit = true;

    Step 5: 保存文档

    workbook.SaveToFile("result.xlsx", ExcelVersion.Version2013);

    设置结果:

    全部代码:

    using Spire.Xls;
    
    namespace ShrinkTextToFitCell_XLS
    {
        class Program
        {
            static void Main(string[] args)
            {
                //实例化Workbook类的对象,并加载测试文档
                Workbook workbook = new Workbook();
                workbook.LoadFromFile("test.xlsx");
    
                //获取第一个工作表
                Worksheet sheet = workbook.Worksheets[0];
    
                //获取指定数据范围
                CellRange cell = sheet.Range["A1:C1"];
    
                //设置单元格样式(数据缩小以适应单元格)
                CellStyle style = cell.Style;
                style.ShrinkToFit = true;
    
                //保存文档
                workbook.SaveToFile("result.xlsx", ExcelVersion.Version2013);
                System.Diagnostics.Process.Start("result.xlsx");
            }
        }
    }
    View Code

    (本文完)

  • 相关阅读:
    【UNR #1】火车管理
    NOIP2018保卫王国
    [SCOI2015]国旗计划[Wf2014]Surveillance
    [TJOI2015]线性代数(最小割)
    [AH2017/HNOI2017]礼物(FFT)
    BZOJ5093图的价值(斯特林数)
    [NOI2018]你的名字(后缀自动机+线段树)
    [SDOI2015]序列统计(多项式快速幂)
    [NOI2014]购票(斜率优化+线段树)
    [CQOI2017]小Q的表格(数论+分块)
  • 原文地址:https://www.cnblogs.com/Yesi/p/10716963.html
Copyright © 2020-2023  润新知