VB本身提自动化功能可以读写EXCEL表,其方法如下:
1、在工程中引用Microsoft Excel类型库:
从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作EXCEL表常用命令:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值
xlSheet.PrintOut '打印工作表
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏
4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。
EXCEL实际上是一个数据库,它的列就是数据库表的列字段,行就是数据库表的项,我这有通过ADO插入的代码,你可以反向一个,把插入换成读取。
_ConnectionPtr m_pConnect; //ADO对象,下同
_RecordsetPtr m_pRecordset;
CString sql;
sql = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
sql+=strExcelFile;//EXCEL文件绝对路径+它自己的文件名。
sql+=";Extended Properties=Excel 8.0";
m_pConnect.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnect->Open((LPCSTR)sql,"","",adModeUnknown);
m_pRecordset->Open("select * from [iomstats]", m_pConnect.GetInterfacePtr(),
adOpenDynamic, adLockOptimistic,adCmdText);//[iomstats]就是excel左下的[sheet]修改名。
while(!m_pRecordset->adoEOF)
{
//修改行
if((LPCSTR)_bstr_t(m_pRecordset->GetCollect("times")) == strTime)
{
//_variant_t
ultoa(iomStats.dwNumOfDiskReads,charbuf,RADIX);
m_pRecordset->PutCollect("dwNumOfDiskReads",_variant_t(charbuf));
}
m_pRecordset->MoveNext();
}
m_pRecordset->Update();
m_pRecordset->Close();
m_pConnect->Close();
读写EXCEL表:
1、在工程中引用Microsoft Excel类型库:
从"工程"菜单中选择"引用"栏;选择Microsoft Excel 12.0 Object Library(EXCEL2007),然后选择"确定"。表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作EXCEL表常用命令:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
Set xlBook = xlApp.Workbooks.Add("文件名") '创建新的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
for i=1 to 100
for j=1 to 50
numArr(j,i)=xlSheet.Cells(j, i) '......................................
next
next
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
张志晨
1. 先在VB里面建立一个Excel Object用以访问Excel文件,如果你的Excel是CSV的则不需要,直接按照Txt文本方式打开读取即可.
2. 建立Button事件,将获取的数据传入到TextBox里面即可.
参考如下代码:
条件:我有一个Excel文件D:A.xls里面的Sheet1中A1开始有100个单词;在VB中Form1中有一个TextBox名字为Text1,有一个按钮,名字为Command1则实现代码如下:
Private i As Integer
Private Sub Command1_Click()
Set ExcelApp = CreateObject("Excel.Application")
Set ExcelBook = ExcelApp.Workbooks.Open("D:A.xlsx")
Set ExcelSheet = ExcelBook.Worksheets("Sheet1")
Text1.Text = ExcelSheet.cells(i, 1)
i = i + 1
If i >100 Then i = 1
End Sub
Private Sub Form_Load()
i = 1
End Sub
希望可以帮助到你!
以上是VB6教程:将ACCESS数据库导出为EXCEL表格的详细内容。更多信息请关注PHP中文网其他相关文章!