0

SAP Business One からダイアログ ボックスを開いて Excel シート (.csv) を読み込もうとしています。以前にこれを試したことがなく、Excel シートを読み取ろうとすると次のエラーが表示されます。

    private void GetFile()
    {
        using (GetFileNameClass oGetFileName = new GetFileNameClass())
        {
            oGetFileName.Filter = "Excel files (*.csv)|*.csv";
            oGetFileName.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            Thread threadGetExcelFile = new Thread(new ThreadStart(oGetFileName.GetFileName));
            threadGetExcelFile.SetApartmentState(ApartmentState.STA);

            try
            {
                threadGetExcelFile.Start();
                while (!threadGetExcelFile.IsAlive) ; // Wait for thread to get started
                Thread.Sleep(1); // Wait a sec more
                threadGetExcelFile.Join(); // Wait for thread to end

                var fileName = string.Empty;
                fileName = oGetFileName.FileName;

                if (fileName != string.Empty)
                {
                    string connString = "";
                    System.Data.DataTable dt = new System.Data.DataTable();                  

                    connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";
                    connString += fileName;
                    connString += ";Extended Properties=Excel 12.0 Xml;HDR=YES;IMEX=1;";

                    OleDbConnection myConnection = new OleDbConnection(connString);

                    if (myConnection.State != ConnectionState.Open)
                        myConnection.Open();

                    string sql = "SELECT * From [Sheet1$]";   <-------Error thrown here

                    using (OleDbDataAdapter adapter = new OleDbDataAdapter(sql, myConnection))
                    {
                        adapter.Fill(dt);
                    }
                }
            }
            catch (RulesException ex)
            {
                SboConnection.SboApplication.SetStatusBarMessage(ex.GetErrorMessages(), SAPbouiCOM.BoMessageTime.bmt_Medium, true);
            }
        }
    }

sql ステートメントで「インストール可能な ISAM が見つかりませんでした」というエラーが発生します。これを解決してExcelシートを読むにはどうすればよいですか?どんな助けでも感謝します。

4

1 に答える 1

1

接続文字列の実際には、2 つ必要です。(セミコロン) を最後に付けます。したがって、* connString *は次のようにする必要があります。

var connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;';", saved_FileName);

それは私のために働いた。

于 2014-01-07T06:30:11.450 に答える