首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用C#在OpenXML中设置A1:M30的边框

在OpenXML中使用C#设置A1:M30的边框,可以通过以下步骤实现:

  1. 首先,确保已经安装了OpenXML SDK。可以通过NuGet包管理器安装"DocumentFormat.OpenXml"包。
  2. 创建一个新的Excel文档并打开它:
代码语言:txt
复制
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

// 创建一个新的Excel文档
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create("Sample.xlsx", SpreadsheetDocumentType.Workbook);

// 添加WorkbookPart
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();

// 添加WorksheetPart
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());

// 添加Sheet
Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
sheets.Append(sheet);

// 保存并关闭文档
workbookPart.Workbook.Save();
spreadsheetDocument.Close();
  1. 打开Excel文档并设置边框:
代码语言:txt
复制
// 打开Excel文档
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open("Sample.xlsx", true);

// 获取WorksheetPart
WorksheetPart worksheetPart = spreadsheetDocument.WorkbookPart.WorksheetParts.First();

// 获取SheetData
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();

// 设置边框
for (int row = 1; row <= 30; row++)
{
    for (char column = 'A'; column <= 'M'; column++)
    {
        string cellReference = $"{column}{row}";

        // 获取单元格
        Cell cell = sheetData.Descendants<Cell>().FirstOrDefault(c => c.CellReference.Value == cellReference);

        if (cell != null)
        {
            // 创建边框
            Border border = new Border(
                new LeftBorder(new Color() { Rgb = new HexBinaryValue("00000000") }) { Style = BorderStyleValues.Thin },
                new RightBorder(new Color() { Rgb = new HexBinaryValue("00000000") }) { Style = BorderStyleValues.Thin },
                new TopBorder(new Color() { Rgb = new HexBinaryValue("00000000") }) { Style = BorderStyleValues.Thin },
                new BottomBorder(new Color() { Rgb = new HexBinaryValue("00000000") }) { Style = BorderStyleValues.Thin }
            );

            // 获取或创建CellStyle
            CellFormat cellFormat = cell.StyleIndex != null ? (CellFormat)spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ChildElements[(int)cell.StyleIndex.Value] : new CellFormat();

            // 设置边框样式
            cellFormat.BorderId = spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.BorderStyles.Count++;
            spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.BorderStyles.AppendChild(border);

            // 设置CellStyle
            cellFormat.ApplyBorder = true;
            cellFormat.BorderId = spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.BorderStyles.Count - 1;

            // 更新或添加CellStyle
            if (cell.StyleIndex != null)
            {
                spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ReplaceChild(cellFormat, spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ChildElements[(int)cell.StyleIndex.Value]);
            }
            else
            {
                spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.AppendChild(cellFormat);
            }

            // 更新单元格
            cell.StyleIndex = (uint)spreadsheetDocument.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats.Count - 1;
        }
    }
}

// 保存并关闭文档
spreadsheetDocument.WorkbookPart.Workbook.Save();
spreadsheetDocument.Close();

以上代码将会创建一个名为"Sample.xlsx"的Excel文档,并设置A1:M30的边框为细线条。你可以根据需要修改代码中的文件名和边框样式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# 使用openxml解析PPTX文本内容

DocumentFormat.OpenXml用于加载解析pptx文档,FreeSpire.Doc用于解析pptx嵌入doc文档内容,详见解析嵌入doc文本。...1、直接保存在slide*.xml文件节点数据;2、以oleObject对象形式存储word文档;3、以oleObject对象形式存储bin文件。...直接保存在slide*.xml文件文本数据只需遍历页面每一个paragraph对象即可,需要注意是此处用到是DocumentFormat.OpenXml.Drawing.Paragraph...对象slide*.xml文件记录形式如下图: progId值为“Word.Document.8”表示嵌入对象是Office 2007以前数据格式,值为“Word.Document.12”表示嵌入对象是...Office 2007以后OOXML定义数据格式直接通过DocumentFormat.OpenXml解析,需要注意解析word段落需要用DocumentFormat.OpenXml.Wordprocessing.Paragraph

43410
  • C#如何以编程方式设置 Excel 单元格样式

    前言 C#开发,处理Excel文件是一项常见任务。...处理Excel文件时,经常需要对单元格进行样式设置,在此博客,小编将重点介绍如何使用葡萄城公司服务端表格组件——GrapeCity Documents for Excel(以下简称GcExcel)...边框 边框是另一个常用格式设置选项,它有助于创建可能相关但彼此独立数据部分,例如发票“帐单和运输详细信息”、“列表总计”等。...与文本颜色一样,可以从 Excel 工具栏和设置单元格格式对话框应用边框。要使用 GcExcel 设置边框,可以使用IRange 接口 Borders 来设置。...RichText 控件 GcExcel 支持单元格应用富文本格式。富文本格式允许使用不同颜色、字体、效果(粗体、下划线、双下划线、删除线、下标、上标)等单元格设置文本样式。

    32010

    dotnet OpenXML 读取 PPT 形状边框定义 Style 颜色画刷

    本文来和大家聊聊 PPT 形状使用了 Style 样式颜色画刷读取方法 开始之前,期望大家已了解如何在 dotnet 应用里面读取 PPT 文件,如果还不了解读取方法,请参阅 C# dotnet...使用 OpenXml 解析 PPT 文件 本文核心是来和大家聊聊 ECMA 376 文档里面,第 20.1.4.2.19 章 lnRef (Line Reference) 内容里面没有提到知识 ...OpenXML 里面,通过 a:ln 表示 Outline 轮廓,也就是咱 WPF 形状元素边框。...接着读取 内容,用来覆盖作为实际颜色 下面我将给大家演示如何在 WPF 读取 PPT 形状 Style 边框颜色和在界面里面将此显示出来...; 此颜色是 SchemeColor 颜色,按照 dotnet OpenXML 如何获取 schemeClr 颜色 文档方法进行读取,读取时用到辅助方法本文就不列出,还请参阅以上引用博客。

    1K20

    iis如何设置站点编码格式?

    一、环境:win7,iis6.0 二、步骤        打开iis,选择一个站点,右侧asp.net区域里,找到‘.NET全球化’项。   双击打开后。   ...分别选择‘请求’,‘文件’,响应‘,’响应头‘编码格式。按照站点所需情况选择gb2312或utf-8。一般要保持一致。   然后点击右上角‘应用’按钮。保存修改。配置完成。   ...配置保存后,iis站点跟目录下,也就是物理路径指向文件夹下,会新建或修改web-config文件。   打开文件,可看到刚才设置内容。   刚才是视图化设置。...我们也可以直接在站点下新建一个web-config文件,增加如果上图中内容,保存即可。 三、完成        再到.net全球化设置,可以看到,设置已经修改了。

    6.9K11

    dotnet OpenXML 从文档生成创建文档代码

    本文和大家介绍 Serialize.OpenXml.CodeGen 这个支持从某个文档生成用于创建出这个文档 C# 或 VB 代码库。...作用就是可以让小伙伴拿到一份模版文件之后,可以通过 Serialize.OpenXml.CodeGen 生成能创建出这份文档 C# 或 VB 代码,用于在这份代码上面更改功能,做到创建定制 Docx...或 PPTX 或 Xlsx 文档功能 这是一个完全开源库,代码放在 https://github.com/rmboggs/Serialize.OpenXml.CodeGen 欢迎小伙伴访问 这个库功能就是从...文件创建对应 C# 代码,可以使用下面代码 假定在 C 盘有一个 Temp 文件夹,这个文件夹里面有一个 Sample1.xlsx 文件,调用下面代码之后,将会创建了 Sample1.cs 文件...%8E%E6%96%87%E6%A1%A3%E7%94%9F%E6%88%90%E5%88%9B%E5%BB%BA%E6%96%87%E6%A1%A3%E7%9A%84%E4%BB%A3%E7%A0%81%

    76720

    dotnet OpenXML WPF 解析实现 PPT 文本描边效果

    本文是使用 WPF 做个 PowerPoint 系列博客,本文来告诉大家如何解析 PPT 里面的文本描边效果, WPF 应用绘制出来,实现像素级相同 背景知识 开始之前,期望你了解了 PPT 解析入门知识...如对 PPT 解析了解很少,请参阅 C# dotnet 使用 OpenXml 解析 PPT 文件 PPT 里面可以给文本某些文字设置描边效果,描边效果从 OpenXML 层上是不属于特效,只是属于边框属性... PPT 里面,可以给文本加上 Outline 边框属性,从而让文字描边 效果 开始之前,先让大家看一下效果 解析 开始之前,先进行读取文档,代码如下。...代码 本文所有代码和测试文件放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码,即可获取到本文代码.../lindexi/lindexi_gd.git 获取代码之后,进入 Pptx 文件夹 参考 WPF 文字描边 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 本作品采用

    97620

    Office Open XML学习(1)-创建excel文档,并向单元格插入字符串

    /view/1201978.htm 要在C#使用Open XML,需先下载Open XML SDK (目前最高版本为2.0),下载地址为:http://www.microsoft.com/downloads...FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0 安装完以后,就能直接使用了,下面的代码演示了,如何创建一个Excel文档,并创建一个工作表"博客园",最后该工作表单元格...A1插入字符串 using System; using System.IO; using System.Linq; using System.Windows.Forms; using DocumentFormat.OpenXml...); cell.CellValue = new CellValue(strIndex.ToString());//注:这里要设置为目标字符串SharedStringTablePart...该工具还能将任何Open Document(即支持Open XML标准office文档),直接生成相应C#代码(很给力一个功能!)

    2.7K100

    C# dotnet 使用 OpenXml 关闭时不自动保存文档方法

    默认使用 OpenXML SDK 读写 Office 文件,如 PPT 或 Word 或 Excel 文件时,关闭时调用 Dispose 将会自动将更改部分写入到文件。...本文告诉大家如何OpenXML SDK 不写入只是释放资源 如使用以下代码传入 .docs 文件进行解析 using var wordprocessingDocument =...Text = "逗比"; 根据 C# 最新语法,使用了 using var 将会在方法结束时候,自动调用 Dispose 方法,和 using () 写法差不多。...但是调用 Dispose 方法时,将会发现,以上更改自动保存到 Test.docx 文件里面 如果期望不自动保存,可以 OpenSettings 设置不自动保存,如以下代码...OpenXML 格式文件,如 docx 和 pptx 和 xlsx 等文件都可以设置关闭时不自动保存 本文所有代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹

    50630

    如何使用C#Action,Func和Predicate?

    如何使用 Csharp Action, Func,Predicate 本文阅读重点 < 1 如何使用 Csharp Action, Func,Predicate 2 Func...nsdr=true 委托是一个类型安全函数指针,它可以引用与委托具有相同签名方法。委托常用于实现回调方法或者事件机制,C#中一般用 "delegate" 关键字声明。...你可以声明一个和类平级委托,也可以嵌套在类。 image.png Func 和 Action 是什么,如何使用?...C#使用 Action 你可以使用 委托 去实现事件和回调方法,C#委托非常类似于C++函数指针,但是 C# 委托 是类型安全,你可以将方法作为参数传递给委托从而让委托指向该方法。...Func 接下来代码片段展示了如何C#使用 Func 委托,最终方法会打印出 Hra(基本薪资 40%) 值,基本薪资是作为参数传下去,如下代码所示

    2.6K20

    dotnet OpenXML 读取 PPT 内嵌 xlsx 格式 Excel 表格信息

    Office ,可以 PPT 里面插入表格,插入表格有好多不同方法,对应 OpenXML 文档存储更多不同方式。...本文来介绍如何读取 PPT 内嵌 xlsx 格式表格方法 读取方法和 dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格信息 差不多,对于 Office 2019 以上版本...,插入 Excel 表格用不是 OLE 文件方式,而是放入一个 xlsx 文件 Slide.xml 页面里面,存放 GraphicFrame 下内容,简化 OpenXML 文档如下...Workbook.Sheets; 更多读取 Excel 方法请看 C# dotnet WPF 使用 OpenXml 解析 Excel 文件 本文以上测试文件和代码放在github 和 gitee 欢迎访问...可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,命令行里面输入以下代码,即可获取到本文代码 git init git remote add origin

    1.1K20

    win10自带mail如何设置学校邮箱

    大家好,又见面了,我是你们朋友全栈君。...最近突然有项目缘故需要用到学校(所内)邮箱,然而该邮箱不常用,费了好长时间找回密码,好不容易找到密码就想为了信息接受及时添加到win10mail里吧,结果发现怎么添加都添加不上,最后得以解决,虽然是个很小事...首先要在添加账户选择高级设置,然后选择Internet电子邮件设置。 之后进入里面配置,配置信息在你想要绑定邮箱首页帮助里都可以找到,比如中国科学院邮件系统。...进入之后找到相关客户端设置,比如 里面肯定有关于邮件设置信息 通过里面的信息去配置mail就可以了 举个例子,注意一定要把服务器端口写上,而且要注意根据加密方式进行配置...很小事,就是为了自己更方便,信息获取及时,mark一下。

    1K40

    如何使用流程 DataObject 并为流程设置租户

    不知道小伙伴们有没有留意过, Flowable 流程图绘制过程,我们可以编写一个名为 dataObject 元素,这个元素可以指定变量 id、名称以及数据类型等各种属性,并且流程实例启动时候...添加 dataObject 首先我们来看下,流程绘制过程如何去添加 dataObject 对象。...这就是 dataObject 使用,其实非常 Easy!dataObject 平时主要可以用来定义一些全局属性。 3. 租户 说到这里,就顺便再来和小伙伴们聊一聊 Flowable 租户。...Flowable 租户其实很好理解,其实就是流程,多一个一个 TenantID 加以区分每一个流程属于哪个租户。...当这个流程图部署成功之后,我们流程定义表 ACT_RE_PROCDEF 可以看到刚刚设置租户 ID: 接下来我们需要启动流程实例时候,就不能单纯拿着流程部署 ID 去启动了,还得拿上流程租户

    95620

    C# dotnet 使用 OpenXml 解析 PPT 元素坐标和宽度高度

    阅读本文之前,我期望你能了解基础 PPT 解析内容,或看我入门级博客。...本文将告诉大家如何从 PPT 里面解析出通用元素 x 和 y 值,以及元素宽度和高度开始之前请看 C# dotnet 使用 OpenXml 解析 PPT 文件 拿到 slidePart.Slide.CommonSlideData.ShapeTree...element 是 OpenXmlElement 类 拿到了 ShapeProperties 实际上就是 PPT 文件 p:sppr 内容, PPT 里面将会用如下格式设置元素里面的值 a:xfrm...等等,这里 Drawing.Transform2D 是什么意思,我命名空间里面添加这个代码 using Presentation = DocumentFormat.OpenXml.Presentation...) 知道了元素坐标如何在 UWP 设置元素坐标请看 win10 uwp 拖动控件 ----

    1.6K10

    C#WinForm窗体程序如何设置TextBox为密码文本框

    大家好,又见面了,我是你们朋友全栈君。...C#WinForm窗体程序如何设置TextBox为密码文本框 – 2019-08-03 23:59 C#WinForm窗体程序开发过程,TextBox是常用文本框控件,默认TextBox...文本 框输入内容是可见,如果在Winform程序设置TextBox文本框为密码输入框应该如何设置呢?...其实将TextBox文本框设置为密码输入 框,也非常简单,只需要设置TextBox文本框属性PasswordChar属性值,PasswordChar属性值自定义,可以为*号,代表输 入字符显示星号...Winform窗体程序设计界面选中TextBox文本框,然后右键菜单中有个属性,打开属性界面后,属性设置栏中找到PasswordChar,将PasswordChar属性值设置成某一个常量,如星号*,

    5.3K20

    dotnet 使用 OpenXML SDK 解析 Office 项目符号 buNone 含义

    使用 OpenXML SDK 解析时候,只需要开发 10 分钟就完成了整个 PPT 解析了,剩下就是如何使用解析完成数据。...入门文档请看 C# dotnet 使用 OpenXml 解析 PPT 文件 Office 段落里面可以使用 表示当前这一段不要显示项目符号,而这个属性作用还需要小伙伴动手改一下...这个符号是什么意思,下面请看小伙伴修改一下 PPT 文档,看一下 Office PPT 是如何显示 咱要支持 WPS 软件,我推荐使用教育版,这个版本几乎没广告 打开 WPS 写一个文本框,里面的文本设置项目符号...而这个属性就是表示不继承项目符号,也不要使用段落设置项目符号 即使段落里面设置了复杂项目符号,只要存在 那么就不显示项目符号。...,只要写了 NoBullet 这一段不要项目符号,那么这一段就是没有项目符号 } } WPF 默认文本都是没有项目符号可以设置,只能通过自己用字符方式,不过这不在本文范围

    76610

    dotnet OpenXML 幻灯片 PPTX Slide Id 和页面序号关系

    使用 OpenXML SDK 进行 Office 文档解析时,对幻灯片 PPTX 文档页面解析也许会遇到页面顺序问题,本文告诉大家 Office 文档里面页面的序号和顺序之间关系以及如何读取页面序号...开始之前,我期望你是了解一些 PPT 解析相关知识,入门级博客请看 C# dotnet 使用 OpenXml 解析 PPT 文件 C# dotnet 使用 OpenXml 解析 PPT 文件...这篇博客没有详细告诉大家页面顺序问题,但是按照 C# dotnet 使用 OpenXml 解析 PPT 文件 这篇博客写法就是能拿到对页面顺序 ECMA 376 标准说明, Presentation.xml...p:sldIdLst 将会存放在 PPT 画布里面多个页面之间顺序,上面代码页面的 Slide Id 是 id 这个属性,也就是当前文档只有一个页面,这个页面的 Slide Id 是 277 值...foreach (var slideId in slideIdList.ChildElements.OfType()) { var id = slideId.Id; } } 如何了解自己读取到值是否是对

    74310

    如何使用 Optional 模式解决 C# 烦人空引用问题

    视频通过演示了如何在代码中使用可空引用类型,以及如何在库和框架中注释可空性,来展示这个特性优势和注意事项。视频还解释了编译器是如何进行流分析和推断可空性,以及如何处理泛型、接口和虚方法等情况。...在我看来,这个视频实际上告诉我们如何使用当时推出 C# Nullable 特性,也就是我们常见 ?,也就是这种形式代码:string? firstName = null。...string.Empty 这种写法了,虽然这种写法也还行,可以实现我们需求; 我希望可能出现 null reference 异常地方会直接编译不通过,而不是 IDE 波浪下划线警告。...因为很多人是不看警告,我很急时候也常常忽略警告,但这恰恰是 bug 之源。 最后,我希望尽可能减少代码 null,甚至干掉业务代码 null。我觉得这样会让我代码人生更加快乐。 4....v=gpOQl2q0PTU 这个仓库包含了使用 C# 实现 Optional 模式。Optional 模式提供了一种更优雅方式来处理可空值,避免了使用 null 值。

    78940
    领券