gpt4 book ai didi

c# - 使用 ASP.NET 从 Word 文档中获取文本框值?

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:25 24 4
gpt4 key购买 nike

我有一个用 ASP.NET(C#) 编写的非常基本的 Web 应用程序和一个包含文本框和下拉列表的基本 Microsoft Word (2007) 文档。

在我的 Web 应用程序代码隐藏文件中,我想按名称调用文本框控件和下拉控件并从中提取值。

我在网上找到的任何文档都只是读取或写入一个 word 文档,但我似乎找不到任何关于访问控件和从中提取值的内容。

任何帮助将不胜感激谢谢你

这是我目前唯一能对 word 文档执行任何操作的代码。它找到单词 doc 并打开它:

    //File path of the word document that contains the required values 
string filePath = @"C:\Users\murphycm\Desktop\PlacesFile.docm";

object fileToOpen = (object)filePath;

//CREATING OBJECTS OF WORD AND DOCUMENT
Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document oWordDoc = new Microsoft.Office.Interop.Word.Document();

oWordDoc = oWord.Documents.Open(ref fileToOpen);

最佳答案

除非您要在服务器上安装 Microsoft Office,否则我建议您使用 Microsoft 的 Open XML SDK 2.5。使用 SDK,您可以操作 Office 2007 及更高版本的 Microsoft Office 文档:
http://www.microsoft.com/en-us/download/details.aspx?id=30425

下面是使用 OpenXML 和 Office Interop 方法从 TextBox 获取文本的一些代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using Word = Microsoft.Office.Interop.Word;

namespace OpenXMLSDKTest
{
class Program
{
static void Main(string[] args)
{
// Open XML Method
object fileName = @"OpenXmlTest.docx";
using (WordprocessingDocument myDocument = WordprocessingDocument.Open(fileName.ToString(), true))
{
var textbox = myDocument.MainDocumentPart.Document.Descendants<TextBoxContent>().First();
Console.WriteLine(textbox.InnerText);
}

// Office Interop Method
object missing = System.Reflection.Missing.Value;
object readOnly = false;
object isVisible = true;

Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
object firstShape = 1;
string textFrameText = wordApp.ActiveDocument.Shapes.get_Item(ref firstShape).TextFrame.TextRange.Text;
wordApp.Quit(ref missing, ref missing, ref missing);

Console.WriteLine(textFrameText);

Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}

关于c# - 使用 ASP.NET 从 Word 文档中获取文本框值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232633/

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