Кто-нибудь успешно передал данные в Excel с несколькими электронными таблицами? Я застрял в этом. Я использую Visual Basic 2010.Экспорт данных в Excel с несколькими таблицами
0
A
ответ
0
Да, используя EPPlus. Это так же просто, как:
Dim ws = package.Workbook.Worksheets.Add("Name")
Спасибо Тиму :)
0
Вы можете использовать этот метод, чтобы экспортировать данные в файл: первенствует
Public Shared Function ExportDataTableToDataFile(ByVal srcDataTable As DataTable, ByVal dbTbName As String, _
ByVal dbFilePath As String, ByVal dbFileType As String, _
Optional ByVal schemaTable As DataTable = Nothing) As Boolean
Dim expConnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbFilePath
Select Case dbFileType
Case ".dbf"
If dbTbName.Length > 8 Then
dbTbName = dbTbName.Remove(8)
End If
expConnStr &= ";Extended Properties=dBase IV"
Case ".xls"
expConnStr &= dbTbName & ".xls;Extended Properties=""Excel 8.0;HDR=YES;IMEX=0"""
Case ".mdb"
expConnStr &= dbTbName & ".mdb;User Id=admin;Password="
Case ".csv"
expConnStr &= ";Extended Properties=""text;HDR=Yes;FMT=Delimited(,)"""
dbTbName &= ".csv"
Case ".mpp"
expConnStr = "Provider=Microsoft.Project.OLEDB.10.0;Project Name=" & dbFilePath & dbTbName & ".mpp"
Case Else
Return False
End Select
Dim res As Boolean = True
Dim createCmdStr As String = "CREATE TABLE [" & dbTbName & "] ("
Dim insertCmdStr As String = "INSERT INTO [" & dbTbName & "] ("
Dim insertParams As String = " VALUES ("
Dim paramPrefix As String = "@p_"
Dim oleDbCon As New OleDbConnection(expConnStr)
Dim oleDbDa As New OleDbDataAdapter
Dim createCmd As New OleDbCommand
Dim insertCmd As New OleDbCommand
Dim param As OleDbParameter
Dim oleDbColTp As OleDbType
Try
If String.IsNullOrEmpty(dbTbName) Or String.IsNullOrEmpty(dbFilePath) Or srcDataTable Is Nothing Then
res = False
Return res
End If
If Not System.IO.Directory.Exists(dbFilePath) Then
System.IO.Directory.CreateDirectory(dbFilePath)
End If
If System.IO.File.Exists(dbFilePath & dbTbName & dbFileType) Then
System.IO.File.Delete(dbFilePath & dbTbName & dbFileType)
End If
If dbFileType = ".mdb" Then
Dim ADOXCatalog As New ADOX.Catalog
Try
ADOXCatalog.Create(expConnStr)
Catch ex As System.Runtime.InteropServices.COMException
Catch ex As Exception
MessageBox.Show(ex.Source & ": " & ex.Message.ToString, "Chyba!")
Return False
Finally
ADOXCatalog = Nothing
End Try
End If
For Each col As DataColumn In srcDataTable.Columns
If col.DataType Is GetType(DateTime) Then
oleDbColTp = OleDbType.VarWChar
Else
If schemaTable IsNot Nothing Then
oleDbColTp = schemaTable.Rows(srcDataTable.Columns.IndexOf(col))(11)
Else
oleDbColTp = GetOleDbType(col.DataType)
End If
End If
createCmdStr &= "[" & col.ColumnName & "] " & GetSqlDbType(col.DataType).ToString
If col.DataType Is GetType(String) Then 'OleDb dovoluje max dlzku 255 pre VarChar
If col.MaxLength > 255 Then
col.MaxLength = 255
End If
createCmdStr &= " (" & col.MaxLength & ")"
End If
'createCmdStr &= IIf(col.AllowDBNull, "", " NOT NULL")
insertCmdStr &= "[" & col.ColumnName & "]"
insertParams &= "?"
param = insertCmd.Parameters.Add(paramPrefix & col.ColumnName, oleDbColTp, col.MaxLength, col.ColumnName)
param.SourceVersion = DataRowVersion.Current
If Array.IndexOf(srcDataTable.PrimaryKey, col) >= 0 Then
createCmdStr &= " PRIMARY KEY"
ElseIf col.Unique Then
createCmdStr &= " UNIQUE"
End If
If srcDataTable.Columns.IndexOf(col) < srcDataTable.Columns.Count - 1 Then
createCmdStr &= ", "
insertCmdStr &= ", "
insertParams &= ", "
Else
createCmdStr &= ")"
insertCmdStr &= ")"
insertParams &= ")"
End If
Next
insertCmdStr &= insertParams
createCmd.Connection = oleDbCon
createCmd.CommandText = createCmdStr
insertCmd.Connection = oleDbCon
insertCmd.CommandText = insertCmdStr
oleDbDa.InsertCommand = insertCmd
For Each drow As DataRow In srcDataTable.Rows
drow.AcceptChanges()
drow.SetAdded()
Next
If oleDbCon.State <> ConnectionState.Closed Then
oleDbCon.Close()
End If
oleDbCon.Open()
'createCmd.ExecuteNonQuery()
oleDbDa.Update(srcDataTable)
Catch ex As Exception
res = False
MessageBox.Show(ex.Message.ToString, "Chyba!")
Finally
oleDbCon.Close()
End Try
Return res
End Function
Смежные вопросы
- 1. Экспорт результатов SQL-запроса в таблицу с несколькими таблицами Excel
- 2. Экспорт базы данных Access с несколькими таблицами в Excel с несколькими листами
- 3. Формула с несколькими таблицами в Excel
- 4. Экспорт данных в файл Excel с несколькими листами в ASP.NET
- 5. Избыточность данных с несколькими таблицами
- 6. сравнить значение файла Excel с несколькими таблицами
- 7. Создать excel с несколькими рабочими таблицами
- 8. Экспорт данных в excel
- 9. Экспорт данных в Excel
- 10. Экспорт данных в Excel
- 11. Экспорт данных в Excel
- 12. Экспорт данных в Excel
- 13. Экспорт данных в Excel?
- 14. Вставка в базу данных с несколькими таблицами
- 15. Экспорт значений для Excel с несколькими листами
- 16. Экспорт данных в таблицу Excel
- 17. слияние с несколькими таблицами
- 18. Работа с несколькими таблицами
- 19. Экспорт файлов Excel из SAP с сводными таблицами
- 20. Связь с несколькими таблицами
- 21. Просмотр с несколькими таблицами
- 22. Подзапросы с несколькими таблицами
- 23. Экспорт в Excel/CSV с несколькими вкладками в php?
- 24. ContentProvider с несколькими таблицами
- 25. Об ассоциациях с несколькими таблицами (База данных)
- 26. Сохранение набора данных с несколькими таблицами
- 27. Дизайн базы данных с несколькими вложенными таблицами
- 28. Sqlite база данных с несколькими таблицами
- 29. База данных с несколькими таблицами SQLite android
- 30. одна база данных с несколькими таблицами
Да, используя [EPPlus] (HTTP: // epplus .codeplex.com/релизы/просмотр/42439). Это так же просто, как «Dim ws = package.Workbook.Worksheets.Add (« Имя »)' –
. Если вам нужна помощь, вы должны предоставить более подробную информацию. Я не вижу никаких проблем в вашем «коде» ;-) –
Спасибо Тиму! теперь я готов к работе. :) Ну, проблема в том, что у меня нет кода. Загрузили исходный код a назад, который вместо этого генерирует excel xml, но это просто утомительно. EPPlus выглядит более перспективным. Спасибо за помощь - я буду использовать этот инструмент в качестве своего последнего инструмента. –