excel文件中放入字符串变量C#的第一列?
我需要什么id来获取excel文件的第一列,并将该列放入字符串变量中,但将从excel中获取的数字将用空格分隔 例如: Excel文件: 一, 3. 4. 56 76 7. 876 23 43 (列中) 和C中的字符串# 字符串编号=“1 3 4 56 76 7 876 23 43” 任何代码都会帮助我 我已经与excel文件建立了连接,并创建了dataset/datatableexcel文件中放入字符串变量C#的第一列?,c#,string,C#,String,我需要什么id来获取excel文件的第一列,并将该列放入字符串变量中,但将从excel中获取的数字将用空格分隔 例如: Excel文件: 一, 3. 4. 56 76 7. 876 23 43 (列中) 和C中的字符串# 字符串编号=“1 3 4 56 76 7 876 23 43” 任何代码都会帮助我 我已经与excel文件建立了连接,并创建了dataset/datatable 但现在我不能把这些数字作为上面的样本 有一个链接-下面是我要做的…首先用下面的代码打开电子表格 xlApp = Ne
但现在我不能把这些数字作为上面的样本 有一个链接-下面是我要做的…首先用下面的代码打开电子表格
xlApp = New Excel.Application
filePath = "FILENAME"
xlWorkBook = xlApp.Workbooks.Open(filePath)
xlWorkSheet = xlWorkBook.Worksheets(1)
然后像这样通读这篇专栏文章
For data As Integer = 0 To 8
Dim obj As Excel.Range = CType(xlWorkSheet.Cells(data, 1), Range)
If obj.Value IsNot Nothing Then
MyArray(data) = obj.Value
Else
Exit Do
End If
Next
然后,您应该将所有数据都放在MyArray中,然后循环并创建一个带有空格的字符串,这样您就可以了。这段代码是用VB编写的,但它应该让您对要使用的命令和结构有一个很好的了解。您现在只想在数据集中的行之间循环:
var numberStr = EmptyStr;
foreach (DataRow dr in MyDataSet.Tables[0].Rows)
{
numberStr = EmptyStr ? numberStr += dr[0].ToString() : numberStr += " " + dr[0].ToString();
}
更新的解决方案
如果您在数据集中有数据…您可以这样做 ////试试这个
DataSet dsExcelContent = new DataSet();
//Fill from db
//
StringBuilder builder = new StringBuilder();
foreach (DataRow row in dsExcelContent.Tables[0].Rows)
{
builder.Append(row[0].ToString());
builder.Append(" ");
}
Console.WriteLine(builder.ToString());
…与您的代码更精确
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet dsExcelContent = new DataSet();
DataTable dsExcelContent1 = new DataTable();
objAdapter1.Fill(dsExcelContent);
dataGridView1.DataSource = dsExcelContent1;
objConn.Close();
int test = dsExcelContent.Tables[0].Rows.Count;
StringBuilder=新的StringBuilder()
私有void Form1\u加载(对象发送方、事件参数e)
{
String sConnectionString=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=unsorted.xls;扩展属性=”“Excel 12.0;HDR=NO;”“”
如何将您的代码和我的代码结合起来并实现我需要的功能/?您不必手动创建DataTable…当您在适配器上调用Fill时,它将创建tableError 1 foreach语句无法对“System.Data.DataTable”类型的变量进行操作,因为“System.Data.DataTable”不包含“GetEnumerator”的公共定义C:\Users我现在收到此错误?\Administrator\Documents\Visual Studio 2005\Projects\Merge-JoinTest\Form1.cs 42 12 Merge-JoinTestreplace dsExcelContent.Tables[0]替换dsExcelContent.Tables[0]。Rows…我的原始代码适用于我的。您可能正在使用旧版本的framework.replace dsExcelContent.Tables[0]使用dsExcelContent.Tables[0]。ForEach中的行是否确定数据位于您创建的表中?如果您不打算使用类型化数据集,则可能需要手动将该表添加到数据集…dsExcelContent.Tables.add(dsExcelContent1);
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet dsExcelContent = new DataSet();
DataTable dsExcelContent1 = new DataTable();
objAdapter1.Fill(dsExcelContent);
dataGridView1.DataSource = dsExcelContent1;
objConn.Close();
int test = dsExcelContent.Tables[0].Rows.Count;
foreach (DataRow row in dsExcelContent.Tables[0].Rows)
{
builder.Append(row[0].ToString());
builder.Append(" ");
}
//s has the data you want.....
string s = builder.ToString();
//REST OF YOUR CODE.....
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet dsExcelContent = new DataSet();
DataTable dsExcelContent1 = new DataTable();
objAdapter1.Fill(dsExcelContent);
dataGridView1.DataSource = dsExcelContent1;
objConn.Close();
int test = dsExcelContent.Tables[0].Rows.Count;
foreach(DataRow row in dsExcelContent.Tables[0].Rows)
{
StringBuilder builder = new StringBuilder();
foreach (DataColumn col in dsExcelContent.Tables[0].Columns)
{
builder.Append(row[col].ToString());
builder.Append(" ");
}
string s = builder.ToString();
this.label1.Text = s;
string[] numbers = s.Split(' ');
ArrayList numberList = new ArrayList();
int i;
foreach (String num in numbers)
{
if (Int32.TryParse(num, out i))
{
numberList.Add(i);
}
else
Console.WriteLine("'{0}' is not a number!", num);
}
this.listBox1.DataSource = numberList;
}
}
}