使用 C# 将一列.xls存储为.txt文件

本文关键字:存储 xls txt 文件 一列 使用 | 更新日期: 2023-09-27 18:35:55

我想使用 C# 将.xls文件中的一列保存到.txt文件中。.xls文件的列包含国家/地区的城市名称。到目前为止,我所做的,我提取了包含人口高于 20000 的城市名称。现在,我只想在文本文件中存储城市名称,而不是具有换行顺序的人口。但是当我尝试将其保存为空白文本文件时。这是我从中提取数据的代码。XLS文件。

public class City
{
    public DataTable DataService()
    {
        var data = new DataTable();
        var startPath = Application.StartupPath;
        string folderName = Path.Combine(startPath, "CityList");
        System.IO.Directory.CreateDirectory(folderName);
        string SavedfileName = "POI_list.txt";
        var Saving_path = Path.Combine(folderName, SavedfileName);
        string fileName = "Zensus_Gemeinden_org.xlsx";
        var path = Path.Combine(startPath, fileName);
        String name = "Gemeinden_31.12.2011_Vergleich";
        String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
                       path + ";Extended Properties='Excel 12.0 XML;HDR=YES;';";
        OleDbConnection con = new OleDbConnection(constr);
        OleDbCommand oconn = new OleDbCommand("Select [3] as City,[4] as Population, * From [" + name + "$D7:E11300] Where [4] > 20000", con);
        //con.Open();
        OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
        sda.Fill(data);
        //string Place_Json = "Place_List:" + JsonConvert.SerializeObject(data, Formatting.Indented);
        File.WriteAllText(Saving_path, data.ToString()); // it stores as blank text file
        return data;
    }
}

修改:现在我正在以这种方式尝试。但是显示错误a当前文件夹中不存在sb

 sda.Fill(data);
                foreach(DataRow r in data.Rows)
                {
                    string output= sb.append(r["City"] + "'n");
                    File.WriteAllText(Saving_path, data);
                }

新修改:

var sb = new StringBuilder();
                using (DataTable dt = new DataTable())
                {
                  sda.Fill(dt);
                    foreach(DataRow r in dt.Rows)
                    {
                        sb.Appent(r["City"] + "'n"); 
                    }
                    File.WriteAllText(Saving_path,sb.ToString());
                    return dt;
                }

我以这种方式获得了我的.txt文件

Flensburg Kiel Lübeck Neumünster Heide Geesthacht.....

使用 C# 将一列.xls存储为.txt文件

所以你需要先用你的数据填充一个数据表,

var sb = new StringBuilder();
using (DataTable dt = new DataTable())
{
  sda.Fill(dt);
  ..loop here
}

然后你的循环需要遍历行

foreach(DataRow r in dt.Rows)
{      
  ..append data to text here
}

然后,您需要使用字符串生成器在追加位中构建字符串,然后将其写入文件。 那看起来像

sb.append(r["City"] + "'n");