首页
学习
活动
专区
工具
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.5K30
  • dotnet OpenXML 利用合并表格单元格在 PPT 文档插入不可见的额外版权信息

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

    99910

    问题探讨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.9K10

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

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

    18.4K53

    .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.9K10

    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.4K40

    用 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.9K20

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

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

    2.5K60

    终于有一款组件可以全面超越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.4K10

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

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

    6.6K30

    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

    63340

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

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

    47910

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

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

    8.6K50
    领券