使用 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.....
所以你需要先用你的数据填充一个数据表,
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");