详解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");
    }
  }
}

【示例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");
    }
  }
}

以上所述是小编给大家介绍的C#设置Excel数据自适应行高、列宽的2种情况详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • c# 解决IIS写Excel的权限问题

    具体配置方法如下: 1:在服务器上安装office的Excel软件. 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击

  • C#基于NPOI生成具有精确列宽行高的Excel文件的方法

    本文实例讲述了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是非常具有实用价值的技巧分享给大家供大家参考.具体方法如下:. 一.前言 NPOI是操作Excel的神器,导出导入快如闪电, 但是SetColumnWidth函数个人感觉不会用,怎么弄都无法控制好,因为他是以字符数量去设置宽度,实际上Excel列宽还有个像素的概念,更难搞懂了. //附带SetColumnWidth的用法和注释 IWorkbook hssfworkbook = new HSSFWorkbook(); ISh

  • C#如何将DataTable导出到Excel解决方案

    最近,由于公司项目中需要将系统内用户操作的所有日志进行转存备份,考虑到以后可能还需要还原,所以最后决定将日志数据备份到Excel中. 下面是我项目当中Excel.cs这个类的全部代码,通过这个类可以很容易地将DataTable中的数据导入到Excel方法中. 首先,必须要下载NPOI.dll这个程序集, 类代码如下: 复制代码 代码如下: using System; using NPOI.HSSF; using NPOI.HPSF; using NPOI.HSSF.UserModel; usin

  • C#数据导入/导出Excel文件及winForm导出Execl总结

    一.asp.net中导出Execl的方法: 在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,\t分隔的数据,导出execl时,等价于分列,\n等价于换行. 1.将整个html全部输出execl 此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中. 复制代码 代码如下: Response.Clear(); Response.Buffer= t

  • asp.net(C#)操作excel(上路篇)

    1.作业环境  开发环境:vs2005 /vs2008数据库:sql2005 excel:2003 首先 在vs加入com組件(当然也可以加入.net下的excel组件): 之后vs引用子目录会多出下面三个dll: 简单操作流程如下: 复制代码 代码如下: using Excel; // from bill example public void writeExcelAdvance(String outputFile) { string[,] myData = { { "车牌号", &

  • ASP.NET(C#)读取Excel的文件内容

    .xls格式       Office2003及以下版本 .xlsx格式 Office2007 及以上版本 .csv格式       以逗号分隔的字符串文本(可以将上述两种文件类型另存为此格式) 读取前两种格式和读取后一种格式会用两种不同的方法. 下面看程序:页面前台: 复制代码 代码如下: <div>       <%-- 文件上传控件  用于将要读取的文件上传 并通过此控件获取文件的信息--%>      <asp:FileUpload ID="fileSele

  • C# WinForm导出Excel方法介绍

    .NET开发人员首选的方法,通过COM组件调用Office软件本身来实现文件的创建和读写,但是数据量较大的时候异常缓慢:如下代码所示已经做了优化,将一个二维对象数组赋值到一个单元格区域中(下面的代码中只能用于导出列数不多于26列的数据导出): Office PIA 复制代码 代码如下: public static void ExportToExcel(DataSet dataSet, string outputPath){    Excel.ApplicationClass excel = ne

  • C#利用com操作excel释放进程的解决方法

    第一个 复制代码 代码如下: System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets);        System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);        System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);        System.Runtime

  • C#操作EXCEL DataTable转换的实例代码

    复制代码 代码如下: //加载Excel          public   DataSet LoadDataFromExcel(string filePath)         {             try            {                 string strConn;                 //strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + &qu

  • c#利用Excel直接读取数据到DataGridView

    在winform里拖入一个datagridview控件,跟一个openfiledialog控件 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using Microsoft.Office.Core;using Excel=Mi

随机推荐