【发布时间】:2021-08-02 17:50:12
【问题描述】:
我正在编写将 Excel 转换为 JSON 的代码(到目前为止它可以工作)。
但是我遇到了一个问题,我需要在单词 Match_ 之后对我写的每一行进行编号(又名 Match_1、Match_2、Match_3)。
如果您查看代码的末尾,我可能会尝试将 For?但它给了我所有的 Match_i..
如何使用Replace 命令,以便在单词 Match_ 后面加上相应的数字?
IP = 我要添加到句子中的另一个字符串。忽略它
row[0] = 它从 excel 的行中提取的文本
Match_ 不是 var,它实际上是一个文本,我也可以在那里写 Oded_ 然后它会写 Oded_ = (IP string) + (excel text on row[0])
Match_ 是我实际上试图从文本中替换的文本,因为我无法在链接查询中执行 FOR。
using (var conn = new OleDbConnection(connectionString))
{
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = $"SELECT * FROM [{sheetName}$]";
using (var rdr = cmd.ExecuteReader())
{
if (rdr != null)
{
//LINQ query - when executed will create anonymous objects for each row
var query = rdr.Cast<DbDataRecord>().Select(row => new
{
Match_ = IP + row[0]
});
//Generates JSON from the LINQ query
var json = JsonConvert.SerializeObject(query);
//Write the file to the destination path
for (int i = 1; i<200; i++)
{
json = json.Replace("match_", "match_" + i );
}
File.WriteAllText(destinationPath, json);
}
}
【问题讨论】:
-
什么是
Match_和IP,它们在哪里定义? -
IP 只是我添加到我从 Excel 中获取的行中的另一个字符串。 Match_ 取自 linkQuery 的位置(如果您看到 Match_ = IP + row[0]),当它转换为 Json 时,它会像文本上一样使用 Match_。
-
使用 json 似乎是一件相当奇怪的事情。 Json 描述列表,但索引是隐式的。您确定像 CSV 这样的格式不会更适合您的用例吗?
-
它适合我的工作,因为我需要将 Excel 转换为 Json 以提高工作效率,而不是手动完成。到目前为止一切正常,它转换了我需要的所有内容和所有文本,除了烦人的匹配,我需要以某种方式在它之后添加数字。到目前为止,它把它写下来。正确的文本=它正在做我需要它写的东西,我只是不能发布它抱歉:P Match_ =“正确的文本”Match_ =“正确的文本”,我需要它作为 Match_1 =“正确的文本”Match_2 =“正确的文本”
标签: c# json excel linq replace