机房管理系统——vb与excel链接2
因为我之前找的文档让我以为在创建表里面走了非常大的误区,所以当时我直接就在学生管理系统的目录里建了张表,执行时候直接打开这样表即可了。
可是这里面还是存在着非常大的误区。
后来我看了周坤的博客感觉他比我的代码优化了好多。
我代码里面的好多问题都在他这里面得到解决。
(ORZ!!
。我做了一下午,忽然有种白做的感觉。)
“导出为excel”这个button大体就是点击button便创建一张表,然后把myflexgrid写到表格里面。
先看一下我的代码的问题:
Set xlApp = CreateObject("Excel.Application") \'创建EXCEL应用类 | |
xlApp.Visible = True \'设置EXCEL可见 | |
1. | Set xlBook = xlApp.Workbooks.Open(App.Path & "\新建 Microsoft Excel 工作表.xls") \'打开EXCEL工作簿 |
Set xlSheet = xlBook.Worksheets(1) \'打开EXCEL工作表 | |
xlSheet.Activate \'激活工作表 | |
2. | xlSheet.Cells(1, 1) = myflexgrid.TextMatrix(0, 0)……\'给单元格1行驶列赋值………… |
xlBook.RunAutoMacros (xlAutoOpen) \'执行EXCEL中的启动宏 |
- 之前我已经定义了,而我这行代码是打开已有的工作簿。可是。add这种方法就是创建一个新工作簿。新工作簿将成为当前表的活动工作簿。
(我之前一直以为add是加入内容的意思)
- 这行代码我仅仅能控制表的第一行第一列,假设显示几十行怎么办?通过看系统里面代码能够用循环来完毕。
以下看一下我今天看到的代码:
Dim xlsAppAs Excel.Application \'定义Excel程序
DimxlsBook As Excel.Workbook \'定义工作簿
DimxlsSheet As Excel.Worksheet \'定义工作表
Dim i As Long | |
Dim j As Long |
SetxlsApp = CreateObject("Excel.Application") \'创建应用程序
Set xlsBook = xlsApp.Workbooks.Add | 创建一个新工作簿。新工作簿将成为当前表的活动工作簿。 |
SetxlsSheet = xlsBook.Worksheets(1) \'设置应用表
With xlsApp
.Rows(1).Font.Bold = True | 怎样在设置excel中的字体进行设置 |
End With
\'把myflexgrid.Rows的内容写入到电子表格中
For i = 0 To myflexgrid.Rows - 1 | 非常好的利用了循环语句 |
For j = 0 To myflexgrid.Rows - 1 | |
xlsSheet.Cells(i + 1, j + 1) = "\'" & myflexgrid.Rows.TextMatrix(i, j) | ’通过我上面写的能够明显的总结出这个规律 |
Next j
Next i
xlsApp.Visible = True \'显示电子表格
\'xlsSheet.PrintOut preview:=True \'进入打印预览页面
\' xlsBook.SaveAs App.Path & "\Test.xls" \'保存路径和文件名 | 要是点一下就出现一张表这样也太麻烦了,并且文件名称字还是一样的。 所以我认为这段代码有点多余。 |
SetxlsApp = Nothing \'释放控制权
这样做出来的效果比我做的好得多。
拓展:(excel很多其它操作)
1)显示当前窗体:
ExcelID.Visible:=True; |
2)更改Excel标题栏:
ExcelID.Caption:=\' | 应用程序调用MicrosoftExcel\'; |
3)加入新工作簿:
ExcelID.WorkBooks.Add; |
4)打开已存在的工作簿:
ExcelID.WorkBooks.Open(\'C:\Excel\Demo.xls\'); |
5)设置第2个工作表为活动工作表:
ExcelID.WorkSheets[2].Activate; | 或ExcelID.WorkSheets[\'Sheet2\'].Activate; |
6)给单元格赋值:
ExcelID.Cells[1,4].Value:=\'第一行第四列\'; |
7)设置指定列的宽度(单位:字符个数),以第一列为5例:
ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5; |
8)设置指定行的高度(单位:磅)(1磅=0.035厘米)。以第二行为例:
ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米 |
9)在第8行之前插入分页符:
ExcelID.WorkSheets[1].Rows[8].PageBreak:=1; |
10)在第8列之前删除分页符:
ExcelID.ActiveSheet.Columns[4].PageBreak:=0; |
11)指定边框线宽度:
ExcelID.ActiveSheet.Range[\'B3:D4\'].Borders[2].Weight:=3; 1-左 2-右 3-顶4-底 5-斜(\) 6-斜(/) |
12)清除第一行第四列单元格公式:
ExcelID.ActiveSheet.Cells[1,4].ClearContents; |
13)设置第一行字体属性:
ExcelID.ActiveSheet.Rows[1].Font.Name:=\'隶书\'; |
ExcelID.ActiveSheet.Rows[1].Font.Color =clBlue; | |
ExcelID.ActiveSheet.Rows[1].Font.Bold :=True; | |
ExcelID.ActiveSheet.Rows[1].Font.UnderLine:=True; |