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

如何使用OpenXML仅获取电子表格中的可见单元格?

OpenXML是一种用于处理Office文档的开放式标准,可以通过它来操作和读取电子表格中的数据。要仅获取电子表格中的可见单元格,可以按照以下步骤进行操作:

  1. 导入所需的命名空间:
代码语言:txt
复制
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
  1. 打开电子表格文件:
代码语言:txt
复制
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open("文件路径", false))
{
    // 获取电子表格工作簿
    WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
    
    // 获取第一个工作表
    WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
    
    // 获取工作表
    Worksheet worksheet = worksheetPart.Worksheet;
    
    // 获取工作表中的所有行
    IEnumerable<Row> rows = worksheet.GetFirstChild<SheetData>().Descendants<Row>();
    
    // 遍历每一行
    foreach (Row row in rows)
    {
        // 获取行中的所有单元格
        IEnumerable<Cell> cells = row.Descendants<Cell>();
        
        // 遍历每一个单元格
        foreach (Cell cell in cells)
        {
            // 检查单元格是否可见
            if (cell.StyleIndex != null)
            {
                CellFormat cellFormat = (CellFormat)workbookPart.WorkbookStylesPart.Stylesheet.CellFormats.ChildElements[(int)cell.StyleIndex.Value];
                if (cellFormat.Hidden != null && !cellFormat.Hidden.Value)
                {
                    // 单元格可见,进行相应操作
                    string cellValue = cell.CellValue.InnerText;
                    Console.WriteLine("可见单元格的值:" + cellValue);
                }
            }
        }
    }
}

通过以上代码,我们可以打开指定的电子表格文件,并遍历每个单元格,判断其是否可见。如果单元格可见,则可以获取其值或进行其他操作。

推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理电子表格文件。产品介绍链接地址:https://cloud.tencent.com/product/cos

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

相关·内容

使用VBA获取单元格背景色红色、绿色和蓝色数值

标签:VBA 我们可以使用VBA代码来获取单元格背景色RGB值,如下图1所示。 图1 列B、C、D单元格值就是列A相应单元格背景色RGB值。...下面是将单元格背景色拆分成RGB数字表现形式自定义函数: Function Red(rng) As Long Dim c As Long Dim r As Long c = rng.Interior.Color...As Long c = rng.Interior.Color b = c \ 65536 Mod 256 Blue = b End Function 这样,如上图1所示,在单元格...B2输入: =Red(A2) 在单元格C2输入: =Green(A2) 在单元格D2输入: =Blue(A2) 就会得到单元格A2背景色相应RGB值。...如果在其他应用我们要选择背景色,但却不知道其RGB值,那么就可以先在Excel单元格设置想要背景色,然后使用这几个函数获取其RGB值,这样就可以应用到其他程序中了。

3.1K30

dotnet OpenXML 利用合并表格单元格在 PPT 文档插入不可见额外版权信息

本文告诉大家如何利用 Office 对于 OpenXML 支持特性,在 PPT 表格里面,通过合并单元格存放一些额外信息,这些信息对用户来说是不可见,但是进行拷贝表格等时候,可以保存此信息内容...在开始之前,期望大家已了解很多 OpenXML 知识,详细请看 Office 使用 OpenXML SDK 解析文档博客目录 在 PPT 表格里面,采用了 RowSpan 用来表示单元格跨行,对应在下一行单元格将会被标记...例如我对第一行第一个单元格设置合并单元格,合并行,那么在第二行第一列单元格将被标记 vMerge="1" 表示被合并,如下面表格 在 Office 读取 OpenXML 文档,将无视 vMerge...="1" 存在,也就是此属性只是给开发者看而已,无论是否存在都不会影响到单元格合并 但事实上,依然可以在标记了 vMerge="1" 单元格上面添加内容,例如以下有删减 OpenXML 文档...本文以上测试文件和代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码

95010

问题探讨01: 如何使用鼠标滚轮使单元格数值增减?

这个问题是,在某单元格中有一个数字,当鼠标滚轮向上滚动时该单元格数字以0.01间隔增加,向下滚动时以0.01间隔减少? 探讨 很显然,这需要使用Windows API来捕获鼠标事件。...WH_MOUSE = 7 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_MOUSEWHEEL = &H20A Sub BeginHK() '获取当前线程...HookProc = 1 End If End Function Sub EndHK() UnhookWindowsHookEx hHook End Sub 但是,这段代码只能实现单元格数值随着滑动鼠标滚轮不断增加...图1 我想要是,当鼠标滚轮向前滚动时,单元格数值增加0.01,向后滚动时,减少0.01。...但是,当我使用HIWORD(wParam)时,程序却崩溃了!有没有哪位朋友在这方面有研究,可否指教一下:如何捕捉鼠标滚轮向前或向后滚动?

1.8K10

Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格

从工作表获取行和列 您可以分割Worksheet对象以获得电子表格行、列或矩形区域中所有Cell对象。然后,您可以对切片中所有单元格进行循环。...冻结窗格 对于太大而不能一次全部显示电子表格,在屏幕上“冻结”几个最上面的行或最左边列是有帮助。例如,即使用户在电子表格滚动,冻结列或行标题也总是可见。这些被称为冻结窗格。...图 13-8:当freeze_panes设置为A2时,第一行总是可见,即使用户向下滚动。 图表 OpenPyXL 支持使用工作表单元格数据创建条形图、折线图、散点图和饼图。...如何单元格 C5 值设置为"Hello"? 如何单元格行和列检索为整数?...如何单元格设置公式? 如果您想要检索单元格公式结果,而不是单元格公式本身,您必须首先做什么? 如何将第 5 行高度设置为 100? 你如何隐藏 C 列?

18.2K53

.NET导出Excel四种方法及评测

本文,我将使用NPOI、EPPlus、OpenXML、Aspose.Cells四个市面上常见库,各完成一个导出Excel示例。然后对其代码风格和性能做一个横向比较。最后我将说出我自己感想。...在我性能测试函数使用了如下两个函数来测试内存占用: GC.GetTotalAllocatedBytes(true) 获取分配内存大小 GC.GetTotalMemory(true) 获取占用内存大小...但此示例共享变量值收益很低,但会极大地增加代码复杂性(普通用户可能很难写出),因此本示例未使用SharedStringTable; 它基于单元格位置标识,如B3(第三行第二列),因此索引方式比EPPlus...我选择/推荐 在我做这个性能评测前,我一直使用是EPPlus,因为我不喜欢NPOI有第三方依赖,也不喜欢NPOI那些“XSSF”之类前缀命名,也显然不会去费心思写那么多费力不讨好OpenXML代码...更别提这次评测发现EPPlus性能确实不错,唯一缺点就是它单元格下标从1开始设计。即便如此,我还是首选推荐EPPlus。

4.6K10

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

在 Office ,可以在 PPT 里面插入表格,插入表格有好多不同方法,对应 OpenXML 文档存储更多不同方式。...本文来介绍如何读取 PPT 内嵌 ole 格式 xls+ 表格方法 在 Office PPT ,插入表格可以对应多个不同方式: 通过 GraphicData 内嵌到 PPTX 页面里面 通过嵌入文件方式...Workbook.Sheets; 更多读取 Excel 方法请看 C# dotnet WPF 使用 OpenXml 解析 Excel 文件 本文不再详细告诉大家如何读取此 Excel 内容 本文以上测试文件和代码放在...github 和 gitee 欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码 git init.../lindexi/lindexi_gd.git 获取代码之后,进入 Pptx 文件夹 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 更多参考: [MS-OFFDI].pdf [

1.3K40

用 Python 帮运营妹纸快速搞定 Excel 文档

您将了解以下内容: Python 读写 Excel 第三方库 从工作簿获取工作表 读取单元格数据 遍历行和列 写入 Excel 电子表格 添加和删除工作表 添加和删除行和列 大多数公司和大学都使用...它确实确实具有双重工作簿名称,那不是错字! open_workbook()函数其余部分演示了如何打印出电子表格中所有当前定义工作表,如何获取当前活动工作表以及如何打印该工作表标题。...要获取单元格值,请使用value属性。 注意:这段代码使用是 Python 3.8 f-字符串格式化新功能。如果使用较早版本运行它,将会收到报错消息。...您将使用单元格对象行和列属性来获取行和列信息。...至此,您已经了解了如何打开电子表格并从特定单元格以及通过迭代读取数据。现在,您准备学习如何使用 OpenPyXL 创建 Excel 电子表格

4.5K20

AutoHotkey 通过 COM 操作 Excel 文档

quit 命令: objExcel.Quit ##打开电子表格 我们已经会创建 Excel 实例,现在看看如何打开电子表格。...要打开电子表格,我们需要创建一个 Workbooks 集合实例,然后使用 Open 方法打开电子表格。...("C:\test.xls") ##将数据添加到电子表格 首先我们简单地引用一个单元格,然后相应地设置值。...使用所需行或列一个单元格来创建范围,然后使用 Activate 方法来使其成为活动单元格。此时,设置代表整个行或列范围。...##一个完整脚本 现在我们把前面的大部分操作合并到一个完整脚本,在其中我们将进行下列操作: 更改带标签单元格 (1,1) 背景颜色和字体颜色; 创建包含我们正在使用五个单元格范围 (A1:

1.8K20

根据标准word模板生成word文档类库(开源)

类库操作ooxml方面使用OpenXML SDK,所以需要.framework 3.0及以上版本支持。   今天贴上来是第二版,第一版做得太粗糙了就不贴了,虽然第二版仍存在很多待改进地方。...该组件填充域类型: 1.段落填充域; 2.填充域作为段落存在; 3.表格单元格(含水平表头-可插入任意多行数据、含水平和垂直表头-仅能填充模板中固定单元格)。...)Tbl属性(类型为TblStructureInfo)表示表格单元格类型填充域对象(默认值为null代表该填充域非表格单元格类型),可通过Tbl[rowIndex,cellIndex]方式获取表格单元格...7.若要将不含样式纯文本内容填充到表格单元格类型(含水平表头)填充域,则可调用WordMLHelperFillContentToTable(TagInfo tagInfo, DataTable...: 表格单元格类型填充域单元格类 属性如下: Index: wordML列索引(大于或等于该单元格实体在行实体索引值)(只读) ColSpan: 合并列数目(默认为1,即是不合并)

2.4K60

终于有一款组件可以全面超越Apache POI

Apache POI,支持公式数量很少(虽然Apache POI网站罗列了280多种可评估公式,但在API显示为157种)。...但在Apache POI使用高级API来增加条件格式判断会受限。因此,只能使用标记为内部用途低级类来处理Top10、高于平均值(AboveAverage)等格式化选项。...单元格获取/设置值 在对单个单元格执行获取/设置值情况下,GcExcel比Apache POI表现更好。 13....、POI和Aspose.Cells性能结果,如下所示: 设置:获取和保存100,000 * 30单元格double / string / date值,下图显示了double值结果。...结论 从以上结果可以看出,GcExcel 是目前为止速度最快、内存消耗最少服务端电子表格组件。

3.3K10

Excel小技巧79:如何跟踪Excel工作簿修改

你是否正在寻找跟踪Excel电子表格更改方法?在许多情况下,你必须将一个文件分发给多个人,并跟踪所做更改。你可能希望跟踪更改时间、更改者、更改发生在哪个单元格以及更改了哪些数据。...启用跟踪并不意味着你所做每一个更改都会被记录下来。存储在单元格任何数据都会被跟踪,但格式等其他更改不会被跟踪。其他未跟踪更改包括隐藏/取消隐藏由于公式重新计算而更改行和列、批注和单元格值。...上面是在Excel如何进行跟踪一些基本知识,接下来让我们来讨论如何启用它、更改设置和跟踪更改!...“位置”选项允许你跟踪电子表格特定部分更改。只需单击右侧按钮,然后选择要跟踪单元格范围。 最后,如果你不想让其他人知道你正在跟踪更改,可以取消选中“在屏幕上突出显示修订”选项。...现在,你可以使用此内置功能轻松跟踪对Excel电子表格所做任何更改。 注:本文整理自online-tech-tips.com,容易被忽视一个功能。

6.1K30

dotnet OpenXML 解析 PPT 图表 解析日期时间表示内容

OpenXML图表存放日期时间很多存放是数值,需要进行转换才能获取到用户可见字符串 日期在 OpenXML 里可以使用数值存放,需要根据数值和格式化字符串转换为用户可见字符串 如以下...如果 NumericPoint 没有定义,将继承使用 NumberingCache 格式化字符串,如以下代码,获取类别的数值定义格式化字符串 // 读取缓存 var categoryAxisDataNumberingCache...例如在使用中文设备上运行 PPT 软件,将使用 yyyy/M/d 作为默认格式化 如在使用中文设备,需要使用以下代码进行处理 var format = numericPointFormatCodeText...= null) { // 这个公式表示是从 Excel 哪个数据获取获取方式比较复杂。...可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码 git init git remote add origin

60440

Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格

获取证书和令牌文件 在使用 EZSheets 之前,您需要为您 Google 帐户启用谷歌表格和谷歌网盘 APIs。...读写数据 就像在 Excel 中一样,谷歌表格工作表有包含数据列和行单元格。您可以使用方括号运算符在这些单元格读取和写入数据。...什么代码将从标题为Student工作表单元格 B2 读取数据? 如何找到 999 列列字母? 如何找出一个工作表有多少行和列? 如何删除电子表格?...在电子表格寻找错误 在数豆办公室呆了一整天后,我完成了一份包含所有豆类总数电子表格,并将它们上传到了谷歌表格。电子表格是公开可见(但不可编辑)。...请记住,Google 工作表行号从 1 开始,而不是从 0 开始。单元格值将是字符串,所以您需要将它们转换成整数,以便您程序可以使用它们。

8.4K50

《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

当你每天花费很多时间手动更新Excel工作簿,或者经常处理涉及到财务或者重要任务工作簿时,你应该学习如何使用编程语言使流程自动化。...如果你想想这是如何工作,就会注意到一个单元格值通常取决于一个或多个其他单元格,这些单元格可能会再次使用依赖于一个或多个其他单元格,依此类推。...这个应用程序工作方式是:分别在单元格A4和B4输入金额和货币,Excel将在单元格D4将其转换为美元。...Power Pivot与PowerQuery齐头并进:从概念上讲,这是使用PowerQuery获取和清理数据之后第二步。PowerPivot可帮助你直接在Excel以吸引人方式分析和显示数据。...PowerBI Desktop是免费,因此如果你想使用它,转到PowerBI主页并下载它。注意,PowerBI Desktop适用于Windows。

5.2K20

简述如何使用Androidstudio对文件进行保存和获取文件数据

在 Android Studio ,可以使用以下方法对文件进行保存和获取文件数据: 保存文件: 创建一个 File 对象,指定要保存文件路径和文件名。...使用 FileOutputStream 类创建一个文件输出流对象。 将需要保存数据写入文件输出流。 关闭文件输出流。...使用 FileInputStream 类创建一个文件输入流对象。 创建一个字节数组,用于存储从文件读取数据。 使用文件输入流 read() 方法读取文件数据,并将其存储到字节数组。...System.out.println("文件数据:" + data); 需要注意是,上述代码 getFilesDir() 方法用于获取应用程序内部存储目录,可以根据需要替换为其他存储路径。...这些是在 Android Studio 中保存和获取文件数据基本步骤。

30910
领券