当前位置: 首页 > news >正文

C# 设置Excel中文本的对齐方式、换行、和旋转

在 Excel 中,对齐、换行和旋转是用于设置单元格内容显示方式的功能。合理的设置这些文本选项可以帮助用户更好地组织和展示 Excel 表格中的数据,使表格更加清晰、易读,提高数据的可视化效果。本文将介绍如何在.NET 程序中通过C# 设置Excel单元格中文本的对齐方式、方向以及换行。

安装所需.NET库

本文需要用到一个名为 Free Spire.XLS for .NET 的免费国产库。该库支持多种Excel文档操作功能,包括生成、读取、编辑、打印、转换等。

该库可以直接通过Visual Studio > NuGet程序包管理器中搜索 “FreeSpire.XLS” 来安装。也可以通过该链接下载产品包后手动添加引用。

C# 设置Excel中文本的对齐方式、方向以及换行

免费Spire.XLS库的 CellStyle 类提供了多种属性来设置单元样式包括其中的文本对齐。旋转等。具体步骤参考:

  1. 创建一个Excel工作簿并获取其中指定工作表。
  2. 通过 Worksheet.Range[] 属性获取指定单元格或单元格范围
  3. 通过 CellRange.Style 属性获取单元格样式。
  4. 通过 CellStyle.HorizontalAlignment 属性设置单元格中文字的水平对齐方式,包括左对齐(HorizontalAlignType.Left)、水平居中对齐(HorizontalAlignType.Center)、和右对齐(HorizontalAlignType.Right)。
  5. 通过 CellStyle.VerticalAlignment 属性设置单元格中文字的垂直对齐方式,包括靠上对齐(VerticalAlignType.Top)、垂直居中对齐(VerticalAlignType.Center)、和靠下对齐(VerticalAlignType.Bottom)。
  6. 通过 CellStyle.Rotation 属性旋转单元格中的文字旋转至指定角度。
  7. 通过 CellStyle.WrapText 属性设置文本自动换行,手动换行可以添加换行符\n
  8. 保存生成文件。

C#代码:

using Spire.Xls;

namespace SetExcelColumnWidth
{
    class Program
    {

        static void Main(string[] args)
        {
            // 创建工作簿
            Workbook wookbook = new Workbook();

            // 获取第一张工作表
            Worksheet sheet = wookbook.Worksheets[0];

            // 添加说明文字
            sheet.Range["B1"].Text = "文字对齐方式";
            sheet.Range["D1"].Text = "文字方向";
            sheet.Range["F1"].Text = "文字换行";
            sheet.Range["B1:F1"].Style.Font.IsBold = true;
            sheet.Range["B1:F1"].Style.KnownColor = ExcelColors.LightGreen;

            // 左对齐
            sheet.Range["B3"].Text = "左对齐";
            sheet.Range["B3"].Style.HorizontalAlignment = HorizontalAlignType.Left;

            // 水平居中
            sheet.Range["B4"].Text = "水平居中";
            sheet.Range["B4"].Style.HorizontalAlignment = HorizontalAlignType.Center;

            // 右对齐
            sheet.Range["B5"].Text = "右对齐";
            sheet.Range["B5"].Style.HorizontalAlignment = HorizontalAlignType.Right;

            // 居上
            sheet.Range["B7"].Text = "靠上";
            sheet.Range["B7"].Style.VerticalAlignment = VerticalAlignType.Top;

            // 垂直居中
            sheet.Range["B8"].Text = "垂直居中";
            sheet.Range["B8"].Style.VerticalAlignment = VerticalAlignType.Center;

            // 居下
            sheet.Range["B9"].Text = "靠下";
            sheet.Range["B9"].Style.VerticalAlignment = VerticalAlignType.Bottom;

            // 分散对齐并居中
            sheet.Range["B10"].Text = "水平分散对齐+垂直居中";
            sheet.Range["B10"].Style.HorizontalAlignment = HorizontalAlignType.Distributed;
            sheet.Range["B10"].Style.VerticalAlignment = VerticalAlignType.Center;

            // 逆时针旋转45°
            sheet.Range["D7"].Text = "旋转45°";
            sheet.Range["D7"].Style.Rotation = 45;

            // 逆时针旋转90°
            sheet.Range["D8"].Text = "旋转90°";
            sheet.Range["D8"].Style.Rotation = 90;

            // 顺时针旋转45°
            sheet.Range["D9"].Text = "旋转-45°";
            sheet.Range["D9"].Style.Rotation = -45;

            // 顺时针旋转90°
            sheet.Range["D10"].Text = "旋转-90°";
            sheet.Range["D10"].Style.Rotation = -90;

            // 添加‘\n’进行文字换行
            sheet.Range["F8"].Text = "这是\n手动\n换行";

            // 自动换行
            sheet.Range["F9"].Text = "这一段话设置了自动换行";
            sheet.Range["F9"].Style.WrapText = true;

            // 设置行高列宽
            sheet.Columns[1].ColumnWidth = 15;
            sheet.Columns[3].ColumnWidth = 15;
            sheet.Columns[5].ColumnWidth = 15;
            sheet.Range["B3:B5"].RowHeight = 15;
            sheet.Range["B7:B10"].RowHeight = 50;

            // 保存文档
            wookbook.SaveToFile("Excel文本对齐.xlsx", FileFormat.Version2013);
        }
    }
}

生成文档:
Excel文字对齐、旋转、换行


Spire.XLS 库的API参考:
https://www.e-iceblue.com/apireference/net/Spire.XLS/html/N_Spire_Xls.htm

http://www.dtcms.com/a/122468.html

相关文章:

  • 【深度学习】Downstream Model:预训练模型的下游应用与微调技术
  • 网络空间安全(54)CSRF
  • 边缘计算盒子是什么?
  • Dify教程01-Dify是什么、应用场景、如何安装
  • 解决python manage.py shell ModuleNotFoundError: No module named xxx
  • OCR之行驶证识别
  • 【MySQL】——详解事务
  • 多账户使用Github的场景,设置 SSH 多账号使用特定 key
  • MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
  • Pytorch查看神经网络结构和参数量
  • MongoDB 新手笔记
  • GitHub优秀项目:数据湖的管理系统LakeFS
  • 42、JavaEE高级主题:WebSocket详解
  • linux入门四:Linux 编译器
  • leetcode_面试题 02.07. 链表相交_java
  • Interactron: Embodied Adaptive Object Detection(训练时进行更新参数) 还没看懂
  • 金融数据分析(Python)个人学习笔记(7):网络数据采集以及FNN分类
  • React八案例上
  • Seq2Seq - 编码器(Encoder)和解码器(Decoder)
  • Linux系统安全及应用
  • Spring AI Alibaba MCP 市场正式上线!
  • spark安装过程问题
  • CSS 定位属性的生动比喻:以排队为例理解 relative 与 absolute
  • HP EVA SAN 的基础知识及常见数据丢失问题
  • 【nnUNetv2进阶】二十九、nnUNetv2 魔改网络-小试牛刀-引入RCM(Rectangular Self-Calibration Module)
  • Mybatis操作数据库
  • 8. git branch
  • spring mvc 异常处理中@RestControllerAdvice 和 @ControllerAdvice 对比详解
  • Linux服务器——Samba服务器
  • 【C++编程基础-关键字】:constexpr和const