我使用insert into将文本中的数据添加到excel,但它始终显示字符串格式。我想要它的浮动格式(0.2,1,20)并且我不能在excel中更改它们(例如,一次使用coloumn,只有它可以被所有单元格改变一个)。我试过tryparse或converttoint32 func。但是excel没有任何变化,数字仍然是文本格式..
public void ExcelWrite(string date, string station_name, string station_no, string xvaluee)
{
try
{ float j;
xvaluee=xvaluee.Trim();
float.TryParse(Valuee, out j);
string szConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C://data.xls';Extended Properties='Excel 8.0;HDR=YES'";
OleDbConnection conn = new OleDbConnection(szConn);
conn.Open();
OleDbCommand cmd = new OleDbCommand("INSERT INTO [Sayfa1$]([Station_No],[Station_Name],[Date],[Valuee]) VALUES('" + station_no + "','" + station_name + "','" + date + "','" + j + "')", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:1)
因为您为每个参数添加''
,所有参数都将为strings
使用以下参数
using(OleDbConnection cn = new OleDbConnection(szConn ))
{
cn.Open();
OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [Sayfa1$]([Station_No],[Station_Name],[Date],[Valuee]) VALUES(?,?,?,?)", cn);
cmd1.Parameters.AddWithValue("@p1", station_no );
cmd1.Parameters.AddWithValue("@p2", station_name );
cmd1.Parameters.AddWithValue("@p3",date );
cmd1.Parameters.AddWithValue("@p4", j);
cmd1.ExecuteNonQuery();
}