VB导出到EXCEL文件
利用VBA实现自定义的数据导入导出
利用VBA实现自定义的数据导入导出数据导入导出是一项重要的任务,无论是在个人使用Excel还是在组织中,都需要频繁地将数据导入和导出。
而利用VBA编程可以实现自定义的数据导入导出功能,帮助我们更高效地处理数据。
自定义数据导入导出功能可以根据特定的需求,从不同的数据源中导入数据到Excel,并将Excel中的数据导出到指定的文件或数据源中。
下面将分别介绍在Excel中如何利用VBA编写代码实现数据导入和数据导出的功能。
一、利用VBA实现数据导入数据导入是将外部数据源(如数据库、文本文件等)的数据导入到Excel表格中的操作。
以下是一个简单的示例,演示如何通过VBA实现数据导入的功能。
首先,打开Excel,并按下“ALT+F11”进入VBA编辑器。
在VBA编辑器中,点击“插入”按钮,选择“模块”,然后在模块中编写以下代码:```vbaSub ImportData()Dim conn As ObjectDim rs As ObjectDim strSql As StringDim strConn As String' 设置连接字符串,根据实际数据源进行修改strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data.mdb;Persist Security Info=False"' 设置SQL查询语句,根据实际需要进行修改strSql = "SELECT * FROM data_table"' 创建连接对象Set conn = CreateObject("ADODB.Connection")' 打开连接conn.Open strConn' 创建记录集对象Set rs = CreateObject("ADODB.Recordset")' 执行查询rs.Open strSql, conn' 将查询结果导入到当前活动工作表中Sheet1.Cells(1, 1).CopyFromRecordset rs' 关闭记录集和连接rs.Closeconn.Close' 释放对象Set rs = NothingSet conn = NothingEnd Sub```在上述代码中,我们首先设置了连接字符串(根据实际数据源进行修改)和SQL查询语句(根据实际需要进行修改)。
vb 从数据库和gridview导出数据到excel
'从数据集里导出数据Dim sql As Stringsql = "SELECT FIRST 20 * FROM student"claimset = sqlfun.Dataset(sql)Dim xlApp As New Excel.Application()Dim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim rowIndex, colIndex As IntegerrowIndex = 1colIndex = 0xlBook = xlApp.Workbooks().AddxlSheet = CType(xlBook.Worksheets("sheet1"), Excel.Worksheet)Dim Table As New DataSet()Table = claimset'将所得到的表的列名,赋值给单元格Dim Col As DataColumnDim Row As DataRowFor Each Col In claimset.Tables(0).ColumnscolIndex = colIndex + 1xlApp.Cells(1, colIndex) = Col.ColumnNameNext'得到的表所有行,赋值给单元格For Each Row In claimset.Tables(0).RowsrowIndex = rowIndex + 1colIndex = 0For Each Col In claimset.Tables(0).ColumnscolIndex = colIndex + 1xlApp.Cells(rowIndex, colIndex) = Row(Col.ColumnName)NextNext'从gridview导出数据Response.ClearContent()Response.Buffer = TrueResponse.Charset = "GB2312"Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls") Response.ContentType = "application/excel"Dim sw As New StringWriter()Dim htw As New HtmlTextWriter(sw)GridView1.RenderControl(htw)Response.Write(sw.ToString())Response.End()Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) '处理'GridView' 必需置于有 runat=server 的表单标记之中End Sub。
利用VBA实现Excel数据的导入导出
利用VBA实现Excel数据的导入导出Excel是最常用的电子表格软件之一,广泛应用于数据处理和数据分析工作中。
在实际工作中,我们经常需要将数据从其他系统或者文件中导入到Excel中进行进一步处理,或者将Excel中的数据导出到其他系统或文件中。
利用VBA(Visual Basic for Applications)编程语言,我们可以自动化这些繁琐的数据导入导出任务,提高工作效率。
在本文中,我将介绍如何使用VBA实现Excel数据的导入导出功能。
首先,我们将关注数据的导入功能。
通常情况下,我们会从各种格式的文件中导入数据到Excel中进行进一步处理。
VBA提供了一种方式,可以通过编程实现自动读取文件中的数据,并将数据存储到Excel的工作表中。
以下是一个示例代码,用于从一个文本文件中导入数据到Excel中:```vbaSub ImportData()Dim FilePath As StringDim FileContent As StringDim FileLines() As StringDim i As Integer'选择要导入的文件FilePath = Application.GetOpenFilename("Text Files (*.txt), *.txt") '读取文件内容Open FilePath For Input As #1FileContent = Input$(LOF(1), 1)Close #1'按行分割文件内容FileLines = Split(FileContent, vbCrLf)'将数据导入到Excel工作表中For i = LBound(FileLines) To UBound(FileLines)Cells(i + 1, 1).Value = FileLines(i)Next iEnd Sub```在这个示例中,我们首先使用`Application.GetOpenFilename`方法让用户选择要导入的文本文件。
VB导出Excel(导入指定格式的Excel文档中)
VB导出Excel(导入指定格式的Excel文档中)VB 是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一旦报表的格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。
因此有很多程序员现在已经充分利用Excel 的强大报表功能来实现报表功能。
但由于 VB 与 Excel 分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
1、在工程中添加一些报表的引用:如下:Interop.Excel(选择 Microsoft Excel 9.0 Object Library ---Excel 2000)然后选择确定,表示在工程中已经添加了类库。
2、在通用对象的声明过程中定义 Excel 对象dim xlApp As Excel.Application ‘Application 对象是 Excel 对象模型中最高层级的对象,代表Excel应用程序本身,也包含组成工作薄的许多部分,包括工作薄、工作表、单元格集合以及它们包含的数据。
dim xlBook As Excel.Workbook ’设置 xlBook 为一个工作薄dim xlSheet As Excel.Worksheet ‘设置 xlSheet 为一个工作薄的工作表3、在程序中操作 Excel 表常用命令:xlApp.AskToUpdateLinks=False‘来取消讨厌的对话框xlApp.Application.AskToUpdateLinks=False’屏蔽是否更新链接的对话框x lApp.AlertBeforeOverwriting=False’屏蔽弹出保存和覆盖的询问提示框xlApp.Application.DisplayAlerts=False‘屏蔽删除工作表时询问是否删除的对话框xlApp.Visible=False'设置 Excel 对象不可见(或可见)xlBook=xlApp.Workbooks.Open(fileName,2,False)’打开已经存在的 Excel 工作薄文件xlBook.Save()'保存xlBook.Close(True)'关闭工作薄x lApp.Quit()’结束 Excel 对象xlApp=Nothing ‘释放 xlApp 对象xlBook=Nothing ’释放 xlBook 对象xlSheet=Nothing ‘释放 xlSheet 对象4、在运用以上 VB 命令操作 Excel 表时,除非设置 Excel 对象不可见,否则 VB 程序可继续执行其他操作,也能够关闭 Excel,同时也可对 Excel 进行操作。
从VB数据到EXCELEXCEL文件怎改变
VB中的数据输出到EXCEL中,如何改变EXCEL的文件名!我将VB中的数据输出到EXCEL中去,如何改变EXCEL的文件名,哪个语句是定义EXCEL文件名的语句呢?FileName:= (这里写路径+文件名称。
xls), FileFormat:=xlNormal, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=False在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel object library”项。
由于你的Excel版本不同,所以这个选项的版本号也是不同的。
因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
第一层:Application对象,即Excel本身;第二层:workbooks对象集,指Excel的工作簿文件;第三层:worksheets对象集,表示的是Excel的一个工作表;第四层:Cells和Range对象,指向Excel工作表中的单元格。
新建立一个VB的工程,先放一个button,名称为Excel_Out。
先定义好各层:Dim xlapp As 'Excel对象Dim xlbook As '工作簿Dim xlsheet As '工作表我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为文件。
Private Sub Excel_Out_Click()Dim i, j As IntegerSet xlapp = CreateObject("") '创建EXCEL对象'Set xlbook = & "\") '打开已经存在的工件簿文件Set xlbook = '新建EXCEL工件簿文件' (xlAutoOpen) '运行EXCEL启动宏' (xlAutoClose) '运行EXCEL关闭宏= True '设置EXCEL对象可见(或不可见)Set xlsheet = (1) '设置活动工作表''''~~~当前工作簿的第一页,这里也可以换成“表名”'下面就是简单的在一些单元格内写入数字For i = 7 To 15For j = 1 To 10(i, j) = j '当前工作簿第一页的第I行第J列Next iWith xlsheet '设置边框为是实线.Range(.Cells(7, 1), .Cells(28, 29)). = xlContinuousEnd With'引用当前工作簿的第二页Set xlsheet = (7, 2) = 2008 '在第二页的第7行第2列写入2008& "\" '按指定文件名存盘'Set xlbook = '新建一空白工作簿'结束EXCEL对象' Set xlapp = Nothing '释放xlApp对象End Sub这样,我们就可以简单的对excel文件进行操作了。
VBA实现Excel数据导入导出
VBA实现Excel数据导入导出嘿,大家好,我是刘震云。
今天咱们聊聊这个VBA,也就是Visual Basic for Applications。
这玩意儿对于搞Excel的人来说,那可是一大利器。
咱们就聊聊怎么用VBA来实现Excel数据的导入导出。
先说导入吧,导入数据这事儿,其实也就那么一回事。
你先打开Excel,然后点“开发工具”,这个得你自己去找,有时候它藏得挺深。
找到之后,你会看到一个VBA编辑器,里面好像一个大黑盒子,里面啥都没有,有点像我们小时候玩过的那种拼图游戏,需要你去填空。
导入数据之前,你先得写个宏。
宏这东西,简单点说,就是自动执行的一系列操作。
你要导入数据,就得先告诉VBA,你要导入的数据在哪儿,你想导到哪儿。
这就需要你写点代码,比如说这样:```vbaSub 导入数据()Dim objExcel As ObjectSet objExcel = CreateObject("Excel.Application")Dim objWorkbook As ObjectDim objWorksheet As ObjectDim ws As WorksheetDim strFileName As StringDim i As LongstrFileName = "C:\数据源.xlsx" ' 告诉VBA数据源文件路径objExcel.Workbooks.Open strFileNameFor Each ws In objExcel.Workbooks(1).WorksheetsSet objWorksheet = wsFor i = 1 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row' 假设你要导入的数据在源Excel的A列,从第1行开始ws.Cells(i, "B").Value = objWorksheet.Cells(i, "A").ValueNext iNext wsobjExcel.Workbooks(1).Close False ' 关闭源Excel文件 Set objWorksheet = NothingSet objWorkbook = NothingSet objExcel = NothingEnd Sub```这段代码的意思是,打开一个Excel文件,然后将里面A列的数据导出到目标Excel的B列。
VB6.0导出excel方法源代码
VB6.0导出excel⽅法源代码VB6.0 导出excel ⽅法源代码⽅法⼀:⽤Msflexgrid的Textmatrix属性取Msflexgrid中每⼀个单元格的内容,然后填到Excel表中,或者写成CSV格式⽅法⼆:直接把查询结果导出成Excel⼯作表Public Sub Export(formname As Form, flexgridname As String)Dim xlApp As Object 'Excel.ApplicationDim xlBook As Object 'Excel.WorkbookDim xlSheet As Object 'Excel.WorksheetScreen.MousePointer = vbHourglassOn Error GoTo Err_ProcSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet = xlBook.Worksheets(1)'Begin to fill data to sheetDim i As LongDim j As IntegerDim k As IntegerWith formname.Controls(flexgridname)For i = 0 To .rows - 1k = 0For j = 0 To .Cols - 1If .colwidth(j) > 20 Or .colwidth(j) < 0 Thenk = k + 1xlSheet.Cells(i + 1, k).Value = "'" & .TextMatrix(i, j)End IfNext jNext iEnd WithxlApp.Visible = TrueScreen.MousePointer = vbDefaultExit SubErr_Proc:Screen.MousePointer = vbDefaultMsgBox "请确认您的电脑已安装Excel!", vbExclamation,"提⽰"End Sub===================================Public Function ExporToExcel(strOpen As String)'*********************************************************'* 名称:ExporToExcel'* 功能:导出数据到EXCEL'* ⽤法:ExporToExcel(sql查询字符串)'*********************************************************Dim Rs_Data As New ADODB.RecordsetDim Irowcount As IntegerDim Icolcount As IntegerDim cn As New ADODB.ConnectionDim xlApp As New Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim xlQuery As Excel.QueryTableWith Rs_DataIf .State = adStateOpen Then.CloseEnd If.ActiveConnection = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF; SourceDB=D:\DBF;".CursorLocation = adUseClient.CursorType = adOpenStatic.Source = strOpen.OpenEnd WithWith Rs_DataIf .RecordCount < 1 ThenMsgBox ("没有记录!")Exit FunctionEnd If'记录总数Irowcount = .RecordCount'字段总数Icolcount = .Fields.CountEnd WithSet xlApp = CreateObject("Excel.Application")Set xlBook = NothingSet xlSheet = NothingSet xlBook = xlApp.Workbooks().AddSet xlSheet = xlBook.Worksheets("sheet1")xlApp.Visible = True'添加查询语句,导⼊EXCEL数据Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1")) xlQuery.FieldNames = True '显⽰字段名xlQuery.RefreshxlApp.Application.Visible = TrueSet xlApp = Nothing '"交还控制给ExcelSet xlBook = NothingSet xlSheet = NothingEnd Function=============================='*********************************************************'* 名称:OutDataToExcel'* 功能:将MsFlexGrid控件中显⽰的内容输出到Excel表格中进⾏打印'*********************************************************Public Sub OutDataToExcel(Flex As MSFlexGrid) '导出⾄ExcelDim s As StringDim i As IntegerDim j As IntegerDim k As IntegerOn Error GoTo ErtMe.MousePointer = 11Dim Excelapp As Excel.ApplicationSet Excelapp = New Excel.ApplicationOn Error Resume NextDoEventsExcelapp.SheetsInNewWorkbook = 1Excelapp.Workbooks.AddExcelapp.ActiveSheet.Cells(1, 3) = sExcelapp.Range("C1").SelectExcelapp.Selection.Font.FontStyle = "Bold"Excelapp.Selection.Font.Size = 16With Flexk = .RowsFor i = 0 To k - 1For j = 0 To .Cols - 1DoEventsExcelapp.ActiveSheet.Cells(3 + i, j + 1) = "'" & .TextMatrix(i, j)Next jNext iEnd WithMe.MousePointer = 0Excelapp.Visible = TrueExcelapp.Sheets.PrintPreviewErt:If Not (Excelapp Is Nothing) ThenExcelapp.QuitEnd IfEnd Sub⼀个按钮,点击出现对话框(对话框控件已经有),在硬盘⾥⾯查找excel⽂件(当然,后缀名是xls了),找到⽬标excel⽂件后,该excel⽂件⾥⾯是⼀些数据,点击确定,就可以把excel⾥⾯的内容保存到MSFlexGrid控件⾥⾯了还有⼀个,按钮,点击后出现对话框,可以保存MSFlexGrid⾥⾯的东西到⼀个excel⾥⾯谢谢⼤家了⽤CommonDialog可以解决选定打开.xls⽂件问题然后就是读取进去哈哈保存代码如下'添加command控件⼀个MSFlexGrid控件⼀个Private Sub Command1_Click()On Error Resume NextDim fileadd As StringCommonDialog1.ShowOpenCommonDialog1.Filter = "xls⽂件(*.xls)|*.xls" '选择你要的⽂件fileadd = CommonDialog1.FileNameMSHFlexGrid1.Redraw = False '关闭表格重画,加快运⾏速度Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象Set xlBook = xlApp.Workbooks.Open(fileadd) '打开已经存在的EXCEL⼯件簿⽂件xlApp.Visible = True '设置EXCEL对象可见(或不可见)Set xlsheet = xlBook.Worksheets("Sheet1") '设置活动⼯作表For R = 0 To MSHFlexGrid1.Rows - 1 '⾏循环For C = 0 To MSHFlexGrid1.Cols - 1 '列循环MSHFlexGrid1.Row = RMSHFlexGrid1.Col = CxlBook.Worksheets("Sheet1").Cells(R + 1, C + 1) = MSHFlexGrid1.Text '保存到EXCEL Next C Next RMSHFlexGrid1.Redraw = TruexlApp.DisplayAlerts = False '不进⾏安全提⽰'Set xlsheet = Nothing'Set xlBook = Nothing'xlApp.Quit'Set xlApp = NothingEnd Sub。
vbsqldatagrid数据导出到excel
vbsqldatagrid数据导出到excel你新建一数据工程,在其窗体中添加ADODC数据控件和DATAGRID控件。
添加COMMAND控件,将按钮控件的属性TABINDEX设置为0使用以下代码,可将在DATAGRID控件显示的数据导出到EXCEL,将下列代码中的数据库连接语句和表名改为你自己的数据库和表名:Option ExplicitDim i, j, k As IntegerDim strConn As StringDim pubConn As New adodb.ConnectionDim rsTable As New adodb.RecordsetDim strSQL As StringDim xlapp As VariantDim xlBook As VariantDim xlSHEET As VariantPrivate Sub Command1_Click()Set xlapp = CreateObject("excel.application")Set xlBook = xlapp.workbooks.AddSet xlSHEET = xlBook.worksheets(1)xlapp.Visible = TrueOn Error Resume NextIf Err.Number <> 0 Then Set xlapp = CreateObject("Excel.Application")Set xlBook = xlapp.workbooks.AddSet xlSHEET = xlBook.ActiveSheetFor k = 1 To DataGrid1.Columns.CountxlSHEET.Cells(1, k) = DataGrid1.Columns(k - 1).CaptionNext kFor i = 1 To Adodc1.Recordset.RecordCount + 1For j = 0 To DataGrid1.Columns.CountxlSHEET.Cells(i + 1, j + 1) = Adodc1.Recordset(j) 'Next jAdodc1.Recordset.MoveNextNext iEnd SubPrivate Sub Form_Load()strSQL = "select * from mdlk_sj where 批号='D012'"Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\hxrkgl.mdb;Persist Security Info=False"Adodc1.RecordSource = strSQLAdodc1.RefreshEnd Sub。
VB数据导出EXCEL
如何在VB中实现输出到Excel
如何在VB中实现输出到Excelvisual basic 2009-12-04 12:38:22 阅读61 评论0字号:大中小订阅首先要在工程中添加引用“Microsoft Excel 9.0 Object Library”我们使用三个对象Excel.ApplicationExcel.WorkBookExcel.WorkSheet然后我们的目标是:能新建一个Excel文件。
讲某些行列进行合并,设置列宽,填入一个数据,将这个Excel 保存。
Public Sub'定义对象Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet1 As Excel.WorksheetDim xlSheet2 As Excel.WorksheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet1 = xlBook.Worksheets("sheet1")Set xlSheet2 = xlBook.Worksheets("sheet2")'参数是下标!!!一定是按照Sheet1,Sheet2,Sheet3这样的顺序来的。
= "值班表" '修改工作簿的名称,就是将显示的名称换掉 = "呼拉拉" '同上xlSheet1.PageSetup.Orientation = xlLandscape '打印设置-- 设置为横向xlSheet1.PageSetup.TopMargin = 20 '一下四部分为设置Excel的显示格式xlSheet1.PageSetup.BottomMargin = 20xlSheet1.PageSetup.LeftMargin = 8xlSheet1.PageSetup.RightMargin = 8xlApp.Visible = True 'Excel文件是不是显示With xlSheet1.Columns.item(1).ColumnWidth() = 2 '列宽大小.Range(.Cells(1, 1), .Cells(3, 1)).Merge '合并.Cells(1, 1).Value = "123" '填入数据End WithxlApp.Visible = False '这样写,Excel的操作就不显示了。
分享:VB6_0 VB导出excel 方法源代码(转载) 百度空间_应用平台
Driver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF;SourceDB=D:\DBF;"
.CursorLocation = adUseClient
闪电新宇的分享分享
VB6.0 VB导出excel 方法源代码(转载)
方法一:
用Msflexgrid的Textmatrix属性取Msflexgrid中每一个单元格的内容,然后填到Excel表中,或者写成CSV格式
方法二:
直接把查询结果导出成Excel工作表
If .RecordCount < 1 Then
MsgBox ("没有记录!")
Exit Function
End If
Dim xlSheet As Object 'Excel.Worksheet
Screen.MousePointer = vbHourglass
On Error GoTo Err_Proc
Set xlApp = CreateObject("Excel.Application")
Exit Sub
Err_Proc:
Screen.MousePointer = vbDefault
MsgBox "请确认您的电脑已安装Excel!", vbExclamation,"提示"
Set xlBook = xlApp.Workbooks().Add
Set xlSheet = xlBook.Worksheets("sheet1")
VB中MSFlexgrid输出到excel
.Cells(9, "F") = objGrid.TextMatrix(6, 4) '静环材质
.Cells(10, "F") = objGrid.TextMatrix(7, 4) '橡胶硬度
.Cells(6, "I") = objGrid.TextMatrix(2, 4) '抽样水准
End With
objApp.Application.DisplayAlerts = False '不显示对话框
objWorkbook.SaveAs strFileName '保存到指定文件
.Cells(10, "C") = objGrid.TextMatrix(7, 2) '橡胶材质
.Cells(6, "F") = objGrid.TextMatrix(3, 4) '订单号
.Cells(7, "F") = objGrid.TextMatrix(4, 4) '抽样数
Set objWorkbook = objApp.Workbooks.Add(App.Path & "\" & "成品检验报告") '根据模板文件新建一个工作簿
Set objworksheet = objWorkbook.Worksheets("成品检验报告") '设定当前工作表为‘成品检验报告’
Dim objworksheet As Object 'EXCEL 工作表对象
VB程序导出数据到Excel
VB程序导出数据到Excelvb导出数据到ExcelPublic Function ExporToExcel(strOpen As String,cn As ADODB.Connection) '入参为SQL查询语句,cn为当前活动的连接'*********************************************************'* 名称:ExporToExcel'* 功能:导出数据到EXCEL'* 用法:ExporToExcel(sql查询字符串)'*********************************************************Dim Rs_Data As New ADODB.RecordsetDim Irowcount As IntegerDim Icolcount As IntegerDim FILENAME As StringDim xlApp As New Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetDim xlQuery As Excel.QueryT ableWith Rs_DataIf .State = adStateOpen Then.CloseEnd If.ActiveConnection = Cn.CursorLocation = adUseClient.CursorType = adOpenStatic.LockType = adLockReadOnly.Source = strOpen.OpenEnd WithWith Rs_DataIf .RecordCount < 1 ThenMsgBox ("没有记录!")Exit FunctionEnd If'记录总数Irowcount = .RecordCount'字段总数Icolcount = .Fields.CountEnd WithSet xlApp = CreateObject("Excel.Application")Set xlBook = NothingSet xlSheet = NothingSet xlBook = xlApp.Workbooks().AddSet xlSheet = xlBook.Worksheets("sheet1")xlApp.Visible = False 'Excel在后台运行'添加查询语句,导入EXCEL数据Set xlQuery = xlSheet.QueryT ables.Add(Rs_Data, xlSheet.Range("a1"))With xlQuery.FieldNames = True.RowNumbers = False.FillAdjacentFormulas = False.PreserveFormatting = True.RefreshOnFileOpen = False.BackgroundQuery = True.RefreshStyle = xlInsertDeleteCells.SavePassword = True.SaveData = True.AdjustColumnWidth = True.RefreshPeriod = 0.PreserveColumnInfo = TrueEnd WithxlQuery.FieldNames = True '显示字段名xlQuery.RefreshWith xlSheet' .Range(.Cells(1, 1), .Cells(1, Icolcount))/doc/448509670.html, = "黑体"'设标题为黑体字.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Bold = True'标题字体加粗.Range(.Cells(1, 1), .Cells(Irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous'设表格边框样式End WithWith xlSheet.PageSetup' .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:" ' & Gsmc ' .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10统计时间:".CenterHeader = "&""楷体_GB2312,常规""库存明细&""宋体"' .RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"' .LeftFooter = "&""楷体_GB2312,常规""&10制表人:" & Ygxm.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:" & Date.RightFooter = "&""楷体_GB2312,常规""&10第&P页共&N页"End WithFILENAME = App.Path & "\" & Date & ".Xls"xlBook.SaveAs (FILENAME) '保存文件xlApp.QuitSet xlApp = Nothing' xlApp.Application.Visible = True' Set xlApp = Nothing '"交还控制给Excel ' Set xlBook = Nothing' Set xlSheet = NothingEnd Function。
vb导出到excel的方法
vb导出到excel的方法vb导出到excel的方法//导出Private Sub Command5_Click()If Adodc2.Recordset.RecordCount = 0 ThenMsgBox "没有数据可导出!", vbExclamation, "导出"ElseMsgBox "将把数据导出到EXCLE里,请稍等.......", vbExclamation, "导出"Screen.MousePointer = vbHourglassDim i As IntegerDim j As IntegerDim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorksheetSet xlApp = New Excel.ApplicationSet xlBook = xlApp.Workbooks.addSet xlSheet = xlBook.Worksheets(1)' xlSheet.Cells.Columns. '.AutoFitScreen.MousePointer = 11With xlSheet'EXCLE第一列的宽度.Columns(1).ColumnWidth = 9.15.Columns(2).ColumnWidth = 14.13.Columns(3).ColumnWidth = 14.63.Columns(4).ColumnWidth = 6.5.Columns(5).ColumnWidth = 12.5'字体边框居中.Cells.Font.Size = 9.Cells(1, 1).Borders.LineStyle = 1 '边框.Cells(1, 2).Borders.LineStyle = 1.Cells(1, 3).Borders.LineStyle = 1.Cells(1, 4).Borders.LineStyle = 1.Cells(1, 5).Borders.LineStyle = 1.Cells.HorizontalAlignment = xlCenter.Cells.WrapText = True '自动换行.Cells.EntireColumn.AutoFit '行高根据内容自动调整.Cells.EntireRow.AutoFit'文件名称.name = CStr(Date) '时间为名称'标题列名称.Cells(1, 1) = "t1".Cells(1, 2) = "t2".Cells(1, 3) = "t3".Cells(1, 4) = "t4".Cells(1, 5) = "t5"End WithFor i = 1 To VSFlexGrid5.Rows - 1 '遍历VSFlexGrid5的所有行数For j = 1 To VSFlexGrid5.Cols - 1 '遍历VSFlexGrid5所有的列数str = Trim(VSFlexGrid5.TextMatrix(i, j))'去掉空格回车符str = Replace(str, vbCr, "")str = Replace(str, vbLf, "")xlSheet.Cells(i + 1, j) = Trim(str)'加边框xlSheet.Cells(i + 1, j).Borders.LineStyle = 1'内容靠底部' xlSheet.Range(xlSheet.Cells(i + 1, j), xlSheet.Cells(i + 1, j)).VerticalAlignment = 3' xlSheet.Range(xlSheet.Cells(i + 1, j), xlSheet.Cells(i + 1, j)).HorizontalAlignment = 3NextNextScreen.MousePointer = 0MsgBox "数据已经成功导出!", vbExclamation, "导出"xlApp.Visible = TrueSet xlApp = Nothing 'Excel 处于当前窗体Set xlBook = NothingSet xlSheet = NothingEnd IfEnd Sub。
将数据从VisualBasic传输到Excel的方法
将数据从VisualBasic传输到Excel的方法INFO:将数据从 Visual Basic 传输到 Excel 的方法适用于概要本文介绍将数据从 Microsoft Visual Basic 应用程序传输到 Microsoft Excel 的多种方法。
本文还介绍了每种方法的优缺点,这样您可以选择最适合您的解决方案。
更多信息将数据传输到 Excel 工作簿最常用的方法是“自动化”功能。
“自动化”功能为您提供了指定数据在工作簿中所处位置的最大的灵活性,以及对工作簿进行格式设置和在运行时进行各种设置的功能。
利用“自动化”功能,您可以使用多种方法传输数据:逐单元格传输数据将数组中的数据传输到单元格区域使用 CopyFromRecordset 方法向单元格区域传输 ADO 记录集中的数据在 Excel 工作表上创建一个 QueryTable,它包含对 ODBC 或 OLEDB 数据源进行查询的结果。
将数据传输到剪贴板,然后将剪贴板内容粘贴到 Excel 工作表中。
您还可以使用一些其他方法将数据传输到 Excel,而不必使用“自动化”功能。
如果您正在运行服务器端应用程序,这是一种将批量数据处理从客户端移走的好方法。
在没有“自动化”功能的情况下,可以使用下列方法来传输数据:将数据传输到制表符分隔或逗号分隔的文本文件,然后 Excel 可以将该文本文件分析为工作表上的单元格使用 ADO 将数据传输到工作表使用动态数据交换 (DDE) 将数据传输到 Excel下面的部分提供了每种解决方案的详细信息。
使用“自动化”功能逐单元格传输数据利用“自动化”功能,您可以逐单元格地向工作表传输数据:Dim oExcel As ObjectDim oBook As ObjectDim oSheet As Object'Start a new workbook in ExcelSet oExcel = CreateObject("Excel.Application")Set oBook = oExcel.Workbooks.Add'Add data to cells of the first worksheet in the new workbookSet oSheet = oBook.Worksheets(1)oSheet.Range("A1").Value = "Last Name"oSheet.Range("B1").Value = "First Name"oSheet.Range("A1:B1").Font.Bold = TrueoSheet.Range("A2").Value = "Doe"oSheet.Range("B2").Value = "John"'Save the Workbook and Quit ExceloBook.SaveAs "C:\Book1.xls"oExcel.Quit如果数据量较少,逐单元格传输数据是一种完全可以接受的方法。
vb将数据导出到excel[整理版]
'************************************************************************* '**'** VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出.'**'** 调用方式: s_Export2Excel(Ado.Recordset) 或s_Export2Excel(Rds.RecordSet) '** 支持Rds 与Ado 的记录导出'**'*************************************************************************'得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉Public Function f_FieldType$(ByV al sType&)Dim iRe$Select Case sTypeCase 2, 3, 20iRe = "int "Case 5iRe = "float "Case 6iRe = "money "Case 131iRe = "numeric "Case 4iRe = "real "Case 128iRe = "binary "Case 204iRe = "varbinary "Case 11iRe = "bit "Case 129, 130iRe = "char "Case 17, 72, 131, 200, 202, 204iRe = "varchar "Case 201, 203iRe = "text "Case 7, 135iRe = "datetime "Case 205iRe = "image "Case 128iRe = "timestamp "End Selectf_FieldType = iReEnd Function'导出ADO记录集到EXCELPublic Function f_Export2Excel(ByV al sRecordSet As ADODB.Recordset, ByV al sExcelFileName$ _, Optional ByV al sTableName$, Optional ByV al sOverExist As Boolean = False) As Boolean'On Error GoTo lbErrDim iConcStr, iSql$, iFdlist$, iDB As ADODB.ConnectionDim iI&, iFdType$, j, TmpField, FileNameDim iRe As Boolean'检查文件名If Dir(sExcelFileName) <> " " ThenIf sOverExist ThenKill sExcelFileNameElseiRe = FalseGoTo lbexitEnd IfEnd If'生成创建表的SQL语句With sRecordSetFor iI = 0 To .Fields.Count - 1iFdType = f_FieldType(.Fields(iI).Type)Select Case iFdTypeCase "char ", "varchar ", "nchar ", "nvarchar ", "varbinary "If .Fields(iI).DefinedSize > 255 TheniSql = iSql & ",[ " & .Fields(iI).Name & "] text "ElseiSql = iSql & ",[ " & .Fields(iI).Name & "] " & iFdType & _"( " & .Fields(iI).DefinedSize & ") "End IfCase "image "Case ElseiSql = iSql & ",[ " & .Fields(iI).Name & "] " & iFdTypeEnd SelectNextIf sTableName = " " Then sTableName = .SourceiSql = "create table [ "& sTableName & "]( " & Mid(iSql,2) & ") "End With'数据库连接字符串iConcStr = "DRIVER={Microsoft Excel Driver (*.xls)};DSN= ' ';FIRSTROWHASNAMES=1;READONLY=FALSE; " & _"CREA TE_DB= " " " & sExcelFileName & " " ";DBQ= " & sExcelFileName'创建Excel文件,并创建表Set iDB = New ADODB.ConnectioniDB.Open iConcStriDB.Execute iSql'插入数据With sRecordSet.MoveFirstWhile .EOF = FalseiSql = " "iFdlist = " "For iI = 0 To .Fields.Count - 1iFdType = f_FieldType(.Fields(iI).Type)If iFdType <> "image " And IsNull(.Fields(iI).V alue) = False TheniFdlist = iFdlist & ",[ " & .Fields(iI).Name & "] "Select Case iFdTypeCase "char ", "varchar ", "nchar ", "nvarchar ", "text "iSql = iSql & ", ' " & .Fields(iI).V alue & " ' "Case "datetime "iSql = iSql & ",# " & .Fields(iI).V alue & "# "Case "image "Case ElseiSql = iSql & "," & .Fields(iI).V alueEnd SelectEnd IfNextiSql = "insert into [ " & sTableName & "]( " & _Mid(iFdlist, 2) & ") values( "& Mid(iSql, 2) & ") "iDB.Execute iSql.MoveNextWendEnd With'处理完毕,关闭数据库iDB.CloseSet iDB = NothingMsgBox "已经将数据保存到[ " & sExcelFileName & " ] ", 64iRe = TrueGoTo lbexitlbErr:MsgBox "发生错误: " & Err.Description & vbCrLf & _"错误代码: " & Err.Number, 64, "错误"lbexit:f_Export2Excel = iReEnd Function。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ToExcelJingChang.ToExcelJingChang xlbook, xls
Case 5
ToExcelJDanJia.ToExcelJDanJia xlbook, xls
'***************************写入内容*************************
Dim i As Integer
i = 3 'i控制行
Dim j As Integer 'j控制列
Dim countpage As Integer
Case 6
ToExcelADanJia.ToExcelADanJia xlbook, xls
End Select
End If
Next
xlbook.SaveAs Text1.Text '保存EXCEL文件
Select Case i
Case 0
ToExcelMan.ToExcelMan xlbook, xls
Case 1
ToExcelFSD_CL.ToExcelFSD_CL xlbook, xls
'On Error GoTo exlError
Dim i As Integer
If Dir(Text1.Text) <> "" Then '此目录下如有同名文件给出提示,并作相应处理
If MsgBox("文件已存在,是否覆盖!", vbYesNo + vbQuestion, "另存为工程造价文件") = vbNo Then
Dim xlsheet As excel.Worksheet
Set xlsheet = xlbook.Sheets.Add '添加一张工作表
= "工程量汇总"
xls.ActiveSheet.PageSetup.Orientation = xlLandscape '纸张设置为横向
xlsheet.Columns("a:j").Font.Size = 10
xlsheet.Columns("a:j").VerticalAlignment = xlVAlignCenter '垂直居中
xlsheet.Columns(1).HorizontalAlignment = xlHAlignCenter '1列水平居中对齐
xlsheet.Cells(1, 1).Font.Size = 14
xlsheet.Cells(1, 1).Font.Bold = True
xlsheet.Rows(2).RowHeight = 18
xlsheet.Rows(2).HorizontalAlignment = xlHAlignCenter
xlsheet.Columns("c:j").ColumnWidth = 10
xlsheet.Columns("c:j").NumberFormatLocal = "0.00_ " '3到10列保留两位小数
'***************************写入标头*************************************
Case 2
ToExcelHNT.ToExcelHNT xlbook, xls
Case 3
ToExcelZsf.ToExcelZsf xlbook, xls
con.Open
rst_gcl.Open "zonggcl", con, adOpenKeyset, adLockOptimistic, adCmdTable '打开工程量汇总表
If Not (rst_gcl.BOF And rst_gcl.EOF) Then
rst_gcl.MoveFirst
xlsheet.Cells(2, 1).Value = "序号"
xlsheet.Cells(2, 2).Value = "工程项目及名称"
xlsheet.Cells(2, 3).Value = "土方开挖(m3)"
xlsheet.Cells(2, 4).Value = "石方开挖(m3)"
Exit Sub
Else
Kill (Text1.Text) '删除文件
End If
End If
'************打开工作表***************
Set xls = New excel.Application
xlsheet.Rows(1).RowHeight = 40
xlsheet.Range(xlsheet.Cells(1, 1), xlsheet.Cells(1, 10)).MergeCells = True
xlsheet.Cells(1, 1).Value = "工程量汇总"
VB导出到EXCEL文件
所属类别:VB
推荐指数:★★★☆
文档人气:3160
本周人气:11
发布日期:2007-3-26
Private Sub cmdSwatch_Click()
Dim xls As excel.Application
Dim xlbook As excel.Workbook
con.CursorLocation = adUseClient
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strConnection & ";Persist Security Info=False"
xls.Visible = True
Set xlbook = xls.Workbooks.Add
'*********************************
For i = 0 To 14
If Check2(i).Value = vbChecked Then
xlsheet.Cells(2, 9).Value = "砌石工程(m3)"
xlsheet.Cells(2, 10).Value = "灌浆工程(m)"
xls.ActiveSheet.PageSetup.PrintTitleRows = "$1:$2" '固定表头
10
ToExcelCailiao.ToExcelCailiao xlbook, xls
Case 11
ToExcelTsf.ToExcelTsf xlbook, xls
Select Case i
Case 8
ToExcelJDanJiaSum.ToExcelJDanJiaSum xlbook, xls
Case 9
ToExcelADanJiaSum.ToExcelADanJiaSum xlbook, xls
xlsheet.Cells(2, 5).Value = "土方回填(m3)"
xlsheet.Cells(2, 6).Value = "洞挖石方(m3)"
xlsheet.Cells(2, 7).Value = "砼浇筑(m3)"
xlsheet.Cells(2, 8).Value = "钢筋制安(t)"
Set xls = Nothing
Exit Sub
'exlError:
' MsgBox Err.Description, vbOKOnly + vbCritical, "警告"
End Sub
Option Explicit
Public Sub ToExcelZgcl(ByRef xlbook, ByRef xls) '输出总工程量
Next
'每18行为一页,如果数据超出一页时进行特殊处理
If i > 18 Then
xls.ActiveWindow.SmallScroll Down:=1 '活动窗口内容向下滚动1行
Case 12
ToExcelZgcl.ToExcelZgcl xlbook, xls
End Select
End If
Next
For i = 0 To 6
If Check3(i).Value = vbChecked Then
'***************************关闭EXCEL对象*******************
If Check1.Value = vbChecked Then
xlbook.Close
xls.Quit
End If
Set xlbook = Nothing
xlsheet.Columns(1).ColumnWidth = 8
xlsheet.Columns(2).HorizontalAlignment = xlHAlignLeft
xlsheet.Columns(2).ColumnWidth = 26
xlsheet.Columns("c:j").HorizontalAlignment = xlHAlignRight
Dim con As New ADODB.Connection