Visual Studio 2015 ASP.NET Webフォーム
で開発しています。
Excelからデータを取り込んでDBに登録したいのですが、
数値がなぜか日付と認識されているようで、
エクセルで表示されている通りのデータが取得できません。
さらに2958465以上の数値が含まれるシートの取り込みに失敗します。
「有効な OleAut 日付ではありません。 」
というエラーが出ます。
「50」という数値が入ったセルの値が「1900/02/19」になってしまったりもします。
どうしたら数値を数値として取得するのか教えてください。
EXCEL取込をしている部分のソースです。
Dim ds As New DataSet Dim excelVersion As Integer Dim schemaTable As New DataTable Dim flg As Boolean = False Dim i As Integer Dim strUpFilePath() As String '戻り配列 Dim intCnt As Integer '配列添え字 Dim conn As New OleDbConnection Try '行単位データをカンマ部分で分割し、配列へ格納 strUpFilePath = Split(wUpFilePath, ",") excelVersion = CInt(GetExcelVersion(strUpFilePath(intCnt))) If excelVersion >= 12 Then conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ + strUpFilePath(intCnt) _ + ";Extended Properties=""Excel 12.0; HDR=NO; IMEX=1;""") Else conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.4.0;Data Source=" _ + strUpFilePath(intCnt) _ + ";Extended Properties=""Excel 8.0; HDR=NO; IMEX=1;""") End If conn.Open() schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"}) ds = New DataSet For i = 0 To schemaTable.Rows.Count - 1 If schemaTable.Rows(i)("TABLE_NAME").ToString.Contains("Print_Area") Then Continue For End If Dim ExcelCommand As New OleDbCommand("SELECT * FROM [" & schemaTable.Rows(i)("TABLE_NAME").ToString & "] ", conn) Dim ExcelAdapter As New OleDbDataAdapter(ExcelCommand) ExcelAdapter.Fill(ds, schemaTable.Rows(i)("TABLE_NAME").ToString) ExcelCommand.Dispose() ExcelAdapter.Dispose() Next i

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/15 05:54