我撰寫了這段代碼,它允許我讀取 CSV 檔案并將其轉換為 XML 檔案。我有一個問題,如果在 CSV 檔案中有分號 (;),程式將無法讀取資料,如果有逗號 (,) 分隔程式可以讀取資料的單詞并將它們正確插入到 XML 檔案中. 你能找到一種用逗號 (,) 替換分號 (;) 的方法嗎?非常感謝!!:)
這是代碼:
writer.WriteStartDocument();
writer.WriteStartElement("DC8_Recipes");
using (CsvReader reader = new CsvReader(path))
{
reader.ReadHeaders();
while (reader.ReadRecord())
{
writer.WriteStartElement("DC8_Recipes");
writer.WriteAttributeString("PlantNo", reader["id_imp"]);
writer.WriteAttributeString("No", reader["nome_frm"]);
writer.WriteAttributeString("Name", reader["desc_frm"]);
writer.WriteEndElement();
}
reader.Close();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
logText.Text = DateTime.Now " Convertion Completed\n";
logText.Text = DateTime.Now " Saving file to: " savepath "\n";
try
{
logText.Text = DateTime.Now " File save completed!\n";
logText.Text = DateTime.Now " process END\n";
}
catch
{
}
}
uj5u.com熱心網友回復:
您可以傳入CsvReader建構式 aCsvConfiguration以更改默認分隔符(基于當前 CultureInfo):
區域性用于確定型別轉換時的默認分隔符、默認行尾和格式。
using (var csv = new CsvReader(writer, new CsvConfiguration(CultureInfo.InvariantCulture)
{
Delimiter = ","
}))
{
csv.Read();
}
uj5u.com熱心網友回復:
你可以自己寫CsvReader:
public static List<Model> ReadCsv(string path)
{
var modelList = new List<Model>();
using (var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (var streamReader = new StreamReader(fileStream, Encoding.Default))
{
while (!streamReader.EndOfStream)
{
var line = streamReader.ReadLine();
if (string.IsNullOrEmpty(line))
{
continue;
}
var splittedLine = line.Split(';');
var model = new Model();
for (var i = 0; i < splittedLine.Length; i )
{
switch (i)
{
case 0:
model.FirstColumn = splittedLine[i];
break;
case 1:
model.SecondColumn = splittedLine[i];
break;
case 2:
model.ThirdColumn = Convert.ToInt32(splittedLine[i]);
break;
}
}
modelList.Add(model);
}
}
}
return modelList;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/319269.html
標籤:C# xml 文件 视觉工作室-2019
下一篇:如何在控制器中制作一個無盡的會話
