由于我之前找的文档让我以为在创建表里面走了很大的误区,所以当时我直接就在学生管理系统的文件夹里建了张表,运行时候直接打开这样表就行了。但是这里面还是存在着很大的误区。 后来我看了周坤的博客感觉他比我的代码优化了好多。我代码里面的好多问题都在
由于我之前找的文档让我以为在创建表里面走了很大的误区,所以当时我直接就在学生管理系统的文件夹里建了张表,运行时候直接打开这样表就行了。但是这里面还是存在着很大的误区。
后来我看了周坤的博客感觉他比我的代码优化了好多。我代码里面的好多问题都在他这里面得到解决。(ORZ!!!我做了一下午,忽然有种白做的感觉。)
“导出为excel”这个按钮大体就是点击按钮便创建一张表,然后把myflexgrid写到表格里面。
先看一下我的代码的问题:
|
|
||||||||||||||
|
xlApp.Visible = True '设置EXCEL可见
|
||||||||||||||
1. |
Set xlBook = xlApp.Workbooks.Open(App.Path & "新建 Microsoft Excel 工作表.xls") '打开EXCEL工作簿 |
||||||||||||||
|
|
||||||||||||||
|
xlSheet.Activate '激活工作表 |
||||||||||||||
2.
|
xlSheet.Cells(1, 1) = myflexgrid.TextMatrix(0, 0)……'给单元格1行驶列赋值…………
|
||||||||||||||
|
xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL中的启动宏 |
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) |
’通过我上面写的可以明显的总结出这个规律 |
之前我已经定义了,而我这行代码是打开已有的工作簿,但是,add这个方法就是创建一个新工作簿。新工作簿将成为当前表的活动工作簿。(我之前一直以为add是添加内容的意思)
这行代码我只能控制表的第一行第一列,如果显示几十行怎么办?通过看系统里面代码可以用循环来完成。
下面看一下我今天看到的代码:Dim xlsAppAs Excel.Application '定义Excel程序
DimxlsBook As Excel.Workbook '定义工作簿
' xlsBook.SaveAs App.Path & "Test.xls" '保存路径和文件名称 |
要是点一下就出现一张表这样也太麻烦了,而且文件名字还是一样的。所以我觉得这段代码有点多余。 |
Dim i As Long | |
Dim j As Long |
Set xlsBook = xlsApp.Workbooks.Add | 创建一个新工作簿。新工作簿将成为当前表的活动工作簿。 |
.Rows(1).Font.Bold = True | 如何在设置excel中的字体进行设置 |
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) | ’通过我上面写的可以明显的总结出这个规律 |
' xlsBook.SaveAs App.Path & "Test.xls" '保存路径和文件名称 | 要是点一下就出现一张表这样也太麻烦了,而且文件名字还是一样的。所以我觉得这段代码有点多余。 |
SetxlsApp = Nothing '释放控制权
这样做出来的效果比我做的好得多。
拓展:(excel更多操作)
1)显示当前窗口:
|
ExcelID.Visible:=True;
|
2)更改Excel标题栏:
|
应用程序调用MicrosoftExcel';
|
3)添加新工作簿:
|
ExcelID.WorkBooks.Add;
|
4)打开已存在的工作簿:
|
ExcelID.WorkBooks.Open('C:ExcelDemo.xls');
|
5)设置第2个工作表为活动工作表:
|
或ExcelID.WorkSheets['Sheet2'].Activate;
|
6)给单元格赋值:
|
ExcelID.Cells[1,4].Value:='第一行第四列';
|
7)设置指定列的宽度(单位:字符个数),以第一列为5例:
|
ExcelID.ActiveSheet.Columns[1].ColumnsWidth:=5; |
ExcelID.ActiveSheet.Rows[2].RowHeight:=1/0.035;//1厘米 |
ExcelID.WorkSheets[1].Rows[8].PageBreak:=1; |
ExcelID.ActiveSheet.Columns[4].PageBreak:=0; |
ExcelID.ActiveSheet.Range['B3:D4'].Borders[2].Weight:=3; 1-左 2-右 3-顶4-底 5-斜() 6-斜(/) |
ExcelID.ActiveSheet.Cells[1,4].ClearContents; |
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; |