0

我通过插入将文本中的数据添加到 excel 中,但它始终显示字符串格式。我想要它浮动格式(0.2、1、20)并且我不能在excel中更改它们(例如一次一列,只有它可以对所有单元格逐一更改)。我尝试了 tryparse 或 converttoint32 函数。但是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);
        }



     }
4

1 回答 1

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();
}
于 2013-09-13T06:54:35.517 回答