gpt4 book ai didi

c# - 从 Excel 文件读取

转载 作者:搜寻专家 更新时间:2023-10-30 23:13:55 24 4
gpt4 key购买 nike

我见过很多这样的例子,但有些东西对我不起作用。

我要做的是读取 Excel 工作表,给定工作表并将这些值存储到列表中。

例如,假设我有一个如下所示的 excel 文件:

First   Second  Third
f1 s1 t1
f2 s2 t2
f3 s3 t3

每一行都被视为一组值。

这是我目前所做的:

List<string> ColumnNames= GetColumnNames();

using (OleDbConnection OleDbConn = new OleDbConnection(Path))
{
OleDbConn.Open();
String cmdString = "SELECT * FROM [" + sheetName+ "]";
OleDbCommand cmd = new OleDbCommand(cmdString, OleDbConn);
DataTable dt = new DataTable();
List<ValueSet> sets = new List<ValueSet>();
Dictionary<string, Value> values = new Dictionary <string,value>()
ValueSet valueset = new ValueSet(null);
using (OleDbDataReader oleRdr = cmd.ExecuteReader())
{
while (oleRdr.Read())
{
for (int i = 0; i < ColumnNames.Count; i++)
{
ColumnName cn = new ColumnName(columnNames[i]);

string data= oleRdr[f.Name].ToString();
Value value = new Value(data, f);

if (!values.ContainsKey(ColumnNames[i]))
{
values.Add(ColumnNames[i], value);
}
else
{
values[ColumnNames[i]] = value;
}
}
valueSet= new ValueSet(values);
sets.Add(valueSet);
}
return sets;;
}

最佳答案

我在使用 OleDbConnection 的某些文件上得到了奇怪的结果。

我建议 http://www.codeproject.com/Articles/11698/A-Portable-and-Efficient-Generic-Parser-for-Flat-F

有了它,您可以将 CSV 读入数据表并将其解析为列表,如下所示:

DataTable dtPrereg;

using (GenericParserAdapter gp = new GenericParserAdapter(Server.MapPath("prereg.csv"), Encoding.UTF8))
{
gp.FirstRowHasHeader = true;
dtPrereg = gp.GetDataTable();
}

我没有在制表符分隔的文件上测试过它,但它应该可以正常工作(或者您可以将文件转换为 CSV)

关于c# - 从 Excel 文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com