2017-08-08 12 views
0
私はすでに何をやったか

... エクセル指数表記C#で文字列への変換プログラムで

  1. 列の
  2. 1は、科学表記法でデータを含むDataTable

  3. にExcelファイルの内容を読んで

    (例えば6.75436E科学的表記は実際のデータに変換することができる方法+12)

    string filename = Server.MapPath("testfile.xlsx"); 
        string conStr = ""; 
        string Extension = ".xlsx"; 
        switch (Extension) 
        { 
         case ".xls": //Excel 97-03 
          conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"] 
            .ConnectionString; 
          break; 
         case ".xlsx": //Excel 07 
          conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"] 
             .ConnectionString; 
          break; 
        } 
        conStr = String.Format(conStr, filename, "Yes"); 
        OleDbConnection connExcel = new OleDbConnection(conStr); 
        OleDbCommand cmdExcel = new OleDbCommand(); 
        OleDbDataAdapter oda = new OleDbDataAdapter(); 
        DataTable dt = new DataTable(); 
        cmdExcel.Connection = connExcel; 
    
        //Get the name of First Sheet 
        connExcel.Open(); 
        DataTable dtExcelSchema; 
        dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
        string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString(); 
        connExcel.Close(); 
    
        //Read Data from First Sheet 
        connExcel.Open(); 
        cmdExcel.CommandText = "SELECT * From [" + SheetName + "]"; 
        oda.SelectCommand = cmdExcel; 
        oda.Fill(dt); 
        connExcel.Close(); 
    

    (例えば6754357899912)

+0

あなたはこれを解決しましたか? –

答えて

0

これを使用してみてください:

double result = Double.Parse("6.75436E+12", System.Globalization.NumberStyles.Float);

*あなたがC#で値を置くと、それはまだ科学のように見えますが、それは確かに、二重であることをNB。

+0

あなたの素早い返答をありがとうが、これは私が望む希望の値を私に与えてくれません。出力は6754360000000.0の代わりに6754357899912でなければなりません。 – bluetoro

+0

これは、何がExcelから読み込まれているのかという問題になります。 "6.75436"は小数点以下5桁しか提供せず、あなたが求めているのは11桁ではありません。これは実際にはC#の質問ではなく、優れた質問です。それを無視して、ここにあなたがしたいことがあります:あなたのデータを選択し、右クリックし、 "セルをフォーマット..."をクリックし、 "番号"を選択します。これにより、あなたのデータをsciとして提示することができなくなります。そこからCで問題を起こすべきではありません。 –

+0

私はあなたに完全に同意します。ポイントは、ファイルを手動で改ざんしないことです。 – bluetoro

関連する問題