gpt4 book ai didi

c# - Excel 公式和元数据

转载 作者:行者123 更新时间:2023-11-30 22:29:02 25 4
gpt4 key购买 nike

有没有办法提取各种excel公式的底层元数据。我正在使用 excel 公式在 C# 中构建这个框架,并且有兴趣了解每个公式输入参数、它们的数据类型和返回类型。这将帮助我基于提供的元数据构建向导屏幕。

在此先感谢您的帮助。

最佳答案

根据@ja72 的建议,很容易从他提到的链接中解析数据。我不太擅长 C#,所以这是一个 vb.net 代码,您可以将其转换为 C#

话虽如此,您可以通过多种方式从 C# 中查看此问题

方式一

在运行时导航到 URL 并使用以下代码解析值。

缺点:

1)你必须有互联网连接

2) 这个过程很慢

方法 2

创建一个单独的程序来导航到 URL 并使用以下代码解析值。使用以下代码将输出生成到文本文件或 csv 文件,并将该文件嵌入到您的资源中,以便您可以随时使用它

我会建议方法 2,但最终决定权在您。 :)

代码

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Clear()
GetFormulas()
MessageBox.Show ("Done!")
End Sub

Sub GetFormulas()
Dim wc As New Net.WebClient
'~~> first get links
Dim mainPage As String = wc.DownloadString("http://office.microsoft.com/client/helppreview.aspx?AssetId=HV805551279990&lcid=1033&NS=EXCEL.DEV&Version=12&pid=CH080555125")
Dim doc As mshtml.IHTMLDocument2 = New mshtml.HTMLDocument
doc.write (mainPage)
doc.close()
Dim table As mshtml.IHTMLElement = DirectCast(doc.getElementById("vstable"), mshtml.IHTMLElement2).getElementsByTagName("table")(0)
Dim links As mshtml.IHTMLElementCollection = table.getElementsByTagName("A")
For Each link In links
Dim childPage As String = wc.DownloadString(link.getAttribute("href"))
Dim doc2 As mshtml.IHTMLDocument2 = New mshtml.HTMLDocument
doc2.write (childPage)
doc2.close()
Dim div2 As mshtml.IHTMLElement2 = doc2.getElementById("m_article")
For Each elem As mshtml.IHTMLElement In div2.getElementsByTagName("P")
If elem.getAttribute("className") = "signature" Then
Dim formulaString As String = elem.innerText
TextBox1.AppendText (link.innerText & vbTab & formulaString & vbCrLf)
End If
Next
Next
End Sub
End Class

快照

enter image description here

注意:以上只是关于如何抓取 ja72 给出的上述链接的示例。如果您打算使用任何其他链接,则必须相应地更改代码。另请注意,上述链接中提到的公式适用于 Excel 2007 及更高版本。对于 Excel 2003,您必须进入另一个链接。我在上面的例子中没有包含 STOP 按钮,所以一旦程序开始运行,它就不能停止,直到它完成。我相信您可以再添加一个按钮来终止提取。

关于c# - Excel 公式和元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com