|
■No94164 (kiku さん) に返信
> どんなアプリを作成したいのか、わかりませんでした。 > また、具体的にどこの部分がわからないのか、わかりませんでした。 > > どんなアプリなのかについて、想像してみました。 > > ・アプリを起動すると、画面が表示される。 > ・Excel取り込みボタンを押下すると、 > Excelファイルを指定するダイアログが出てファイルを選択すると、 > 指定したExcelファイルの情報を取り込む。 > ・DB登録ボタンを押下すると、取り込んだ情報をDBに保存する。 > > やりたいことは上記であっていますか?
返信ありがとうございます。
現状、別アプリケーションで添付したExcelファイルをFunctionプロシージャの引数で宣言し 下記コードで読み込みを行っています。
''' <summary> ''' Excelファイル読み込み ''' </summary> ''' <param name="file"></param> ''' <returns></returns> 'Private Function RequestFile(ByVal file As String) As XLWorkbook ' Dim url As String = ConfigurationManager.AppSettings("downloadpath") & HttpUtility.UrlEncode(file.Replace("|", ""))
' Dim ServerXML As New MSXML2.ServerXMLHTTP60() ' ServerXML.open("GET", url, False) ' Dim lResolve As Integer = 60 * 1000 ' Dim lConnect As Integer = 60 * 1000 ' Dim lSend As Integer = 60 * 1000 ' Dim lReceive As Integer = 60 * 1000 ' ServerXML.setTimeouts(lResolve, lConnect, lSend, lReceive) ' ServerXML.send() ' Dim strm As MemoryStream = New MemoryStream(DirectCast(ServerXML.responseBody, Byte()))
' Dim book = New XLWorkbook(strm)
' strm.Close()
' Return book 'End Function
やりたいことといたしましては、読み込んだExcelファイル(列1,列2,列3,列4,列5)のデータを 親子関係のテーブルA(列1,列2,列4)とテーブルB(列3,列5)にそれぞれ追加したいと考えております。
単一テーブルへの追加は以下のようなコードで実行しております。
'Function SinseiDataImport(ByVal connectName As String, ByVal file As String) As JsonResult
' Dim rtn As New JsonResult() ' Dim mdl As New ReturnMdl ' Me.Response.AddHeader("Access-Control-Allow-Origin", "*") ' rtn.JsonRequestBehavior = JsonRequestBehavior.AllowGet
' Dim check As String = Me.haitacheck(connectName)
' Try
' Dim book As XLWorkbook = Me.RequestFile(file)
' Using con As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings(connectName).ConnectionString)
' con.Open()
' Dim trn2 As SqlTransaction = con.BeginTransaction()
' Dim sb As New StringBuilder ' Dim cnt As New Integer ' sb.Clear() ' sb.AppendLine(" INSERT INTO インポートテスト ( ") ' sb.AppendLine(" テスト項目1 ") ' sb.AppendLine(" ,テスト項目2 ") ' sb.AppendLine(" ) VALUES ( ") ' sb.AppendLine(" @テスト項目1 ") ' sb.AppendLine(" ,@テスト項目2 ") ' sb.AppendLine(" ) ")
' Dim sheet As IXLWorksheet = book.Worksheets(0)
' For i = 2 To sheet.RowCount
' If String.IsNullOrEmpty(sheet.Cell(i, インポートテスト.テスト項目1).Value) Then ' Exit For ' End If
' cnt += con.Execute(sb.ToString(), ' New With {.テスト項目1 = sheet.Cell(i, インポートテスト.テスト項目1).Value _ ' , .テスト項目2 = sheet.Cell(i, インポートテスト.テスト項目2).Value} _ ' , trn2)
' Next
' trn2.Commit() ' OutPutLog("処理件数" & cnt) ' End Using
' Catch ex As Exception
説明不足かつ長々と書いて申し訳ありません。 以上、よろしくお願いいたします。
|