C# OleDbDataAdapter和Excel格式化带有数字的单元格时出错
你好,我有以下代码:C# OleDbDataAdapter和Excel格式化带有数字的单元格时出错,c#,excel,C#,Excel,你好,我有以下代码: OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\""); OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
我尝试从Excel2007SP2创建的文件中读取数据
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
如果我的Excel文件test.xls已关闭,则带有数字的单元格格式将显示在dataGridView1的表中
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
如下所示:用一个逗号位格式化的5,0显示为5,0
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
如果打开了我的Excel文件test.xls,则带有数字的单元格格式不正确
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
像这样:5,0显示为5
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
Excel 2007 SP2
Microsoft Visual C 2008
.Net Framework 2.0
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
感谢您的帮助我认为您无法使用OleDB设置格式,我认为这只关心数据。如果您想按自己的意愿格式化数据,您可能必须求助于Excel Automation,在Excel Automation中,您可以完全控制数据的格式,使用OleDB写入数据,然后使用Automation打开文件并设置格式可能会更有效
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
如果你想沿着这条路线走下去,这里有一个例子:
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];
但请注意,如果在服务器上运行,则不建议这样做
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\"");
OleDbDataAdapter da = new("select * from [" + TableName + "$]", con);
DataSet dsData = new System.Data.DataSet();
con.Open();
da.Fill(dsData);
dataGridView1.DataSource = dsData.Tables[0];