C#读取和写入excel文件

C#读取和写入excel文件,c#,excel,C#,Excel,我在创建类以读取和写入excel文件时遇到问题。我需要从文件中读取数据(仅一列)。然后我需要在字符串输入中搜索方括号[]和/或括号()。如果行中包含这些内容,我需要在这些内容中提取信息,并用正斜杠(/)分隔(拆分)答案。我不断地在变量的拆分上出错。有人能给我指出正确的方向吗?谢谢 using System; using System.Data; using System.Data.OleDb; using System.IO; using System.Collections.Generic;

我在创建类以读取和写入excel文件时遇到问题。我需要从文件中读取数据(仅一列)。然后我需要在字符串输入中搜索方括号[]和/或括号()。如果行中包含这些内容,我需要在这些内容中提取信息,并用正斜杠(/)分隔(拆分)答案。我不断地在变量的拆分上出错。有人能给我指出正确的方向吗?谢谢

using System;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Text.RegularExpressions;

namespace DataExcelApp
{
    public class ExcelApp
    {
        private static void Main()
        {
            //make connection to document
            var fileName = string.Format("C:/Users/kbangert/Desktop/Karpel/ChargeLanguage.xlsx", Directory.GetCurrentDirectory());
            var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);

            //first query to document
            var adapter = new OleDbDataAdapter("SELECT * FROM [ChargeLanguage] WHERE [description] != string.Empty", connectionString);
            var ds = new DataSet();
            adapter.Fill(ds, "descriptions");

            //DataTable data = ds.Tables["descriptions"];
            var data = ds.Tables["descript"].AsEnumerable();

            if (data != null)
            {
                var entry = data.ToString();
                var pattern = @"\[(.*?)\]";
                var matches = Regex.Matches(entry, pattern);

                foreach (Match m in matches)
                {
                    Console.WriteLine(m.Groups[1]);
                }

                string[] words = matches.Split('/');
                foreach (string word in words)
                {
                    Console.WriteLine(word);
                }
            }    
在这一行

string[] words = matches.Split('/');
matches
Match
对象的集合。这上面没有
Split
方法

您可能想这样做:

foreach (Match m in matches)
{
    Console.WriteLine(m.Groups[1]);

     string[] words = m.Groups[1].Value.Split('/');
     foreach (string word in words)
        Console.WriteLine(word);
}

我不断收到错误
它们是什么?运行时异常?编译错误?哪里到目前为止,您试图解决哪些问题?我一直遇到一个“无法解决符号-拆分”错误,即使没有拆分端口,它也无法编译。还有另一种方法可以过滤出[]大括号和()括号并将其拆分?它是否像我写的那样工作?如果是这样的话,就用这个,因为它非常直截了当。当然,您可以编写一个正则表达式,它已经按照您想要的方式捕获了内容。我得到了两个错误-错误2“System.Xml.Linq.XElement”不包含“Replace”的定义,并且找不到接受“System.Xml.Linq.XElement”类型的第一个参数的扩展方法“Replace”(是否缺少using指令或程序集引用?)和错误-“System.Data.DataTable”不包含“Where”的定义,并且找不到扩展方法“Where”,其中“接受类型为“System.Data.DataTable”的第一个参数(是否缺少using指令或程序集引用?)我想,你发布的代码和我建议的更改中都没有。所以现在我想我的更改是有效的。:-)