利用OpenXML查询Excel单元格的内容
在此程序中传递三个参数:工作薄的完整路径、工作表的名称和包含要检索值的单元格地址。然后使用 SpreadsheetDocument 对象的 Open 方法,以 Open XML 包的形式打开输入文件,并将数据载入一个 XML 文档。接着,使用 XmlNamespaceManager 对象并通过 d 限制符设置对默认 worksheetSchema 命名空间的引用,通过 s 限制符设置对 sharedStringSchema 的引用,来设置命名空间管理器。sharedStringSchema 命名空间引用 SharedStringTablePart 部件,该部件包含在多个单元格内共享的字符串。
然后,通过选择//d:sheet 节点的名称属性,在主工作簿部件中检索代表指定工作表的节点。如果找到节点,则检索工作表的关系 Id,并用其将工作表载入 XML 文档。然后检索值。在节点中,如果 t 属性包含 s,则表示是一个共享的字符串,必须在 SharedStringTablePart 部件中查找。否则,就可以直接从节点检索值。
注意:
此代码只单独检查布尔和字符串值。
最后,程序返回单元格的值或一个布尔值,指定搜索是否成功。
以下是程序代码:
C#
public static string XLGetCellValue(string fileName, string sheetName, string addressName)
{
const string worksheetSchema = "http://schemas./spreadsheetml/2006/main";
const string sharedStringSchema = "http://schemas./spreadsheetml/2006/main";
string cellValue = null;
// Retrieve the stream containing the requested
// worksheet's info.
using (SpreadsheetDocument xlDoc = (fileName, false))
{
// Get the main document part ().
XmlDocument doc = new XmlDocument();
(());
// Create a namespace manager, so you can search.
// Add a prefix (d) for the default namespace.
NameTable nt = new NameTable();
XmlNamespaceManager nsManager = new XmlNamespaceManager(nt);
("d", worksheetSchema);
("s",
利用OpenXML获取Excel单元格的内容 来自淘豆网www.taodocs.com转载请标明出处.