【发布时间】:2017-02-21 20:51:08
【问题描述】:
我正在使用 Excel Sheet 来处理数据,
DataTable dtSchema = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
var sheetName = dtSchema.Rows[0]["TABLE_NAME"].ToString();
OleDbCommand command = new OleDbCommand
("Select * FROM [sheet = "+sheetName+"]",connection);
using (OleDbDataReader dr = command.ExecuteReader())
{
string sqlConnectionString = MyConString;
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
SqlBulkCopy bulkInsert = new SqlBulkCopy(sqlConnectionString);
bulkInsert.DestinationTableName = "Temp";
bulkInsert.WriteToServer(dr);
MessageBox.Show("Upload to DB Temp Table Successful!");
}
}
正如您在此处给出的前两行代码中所看到的那样,我使用 OLEDBSchemaTable 方法来获取 excel 中第一张工作表的名称。 此函数获取工作表名称,但同时在工作表名称末尾放置一个“$”符号。例如,我的 excel 第一个工作表名称是“”“Sheet1”“”,然后在代码中获取 sheet1 并在末尾放置一个 $ 符号。例如 """Sheet1$""".. 请帮我删除那个 $ 符号或给我另一种方法来获取工作表名称。
【问题讨论】:
-
虽然这是一个很好的问题标题......你真的应该为你的问题添加更多描述性标题
-
var sheetName = dtSchema.Rows[0]["TABLE_NAME"].ToString().Replace("$",string.Empty);这样做,它应该可以工作 -
NIcoRiff...下次我会记住的...谢谢。
-
MethodMan.. 刚去试试,会告诉你的。
-
@RizwanAzam just edit 包括标题在内的问题。
标签: c# excel oledb windows-forms-designer oledbconnection