zoukankan      html  css  js  c++  java
  • VBA操作word生成sql语句

    项目开始一般都是用word保存下数据库的文档

    但是从表单一个一个的建表实在是很困难乏味,查查资料

    1、可以生成一个html或者xml,检索结构生成sql。但是这个方式也蛮麻烦

    2、查到vba可以操作word读取表格。所以采用这种方式写了一个小程序。这样就可以直接生成sql了,在这里做个记录。

    代码很初级,意见欢迎,勿喷。

    Public Sub test()
     'Word对象定义
        Dim objWord As New Word.Application
        Dim objWordNew As New Word.Application
        
        'Doc对象定义
        Dim objDoc As Word.Document
        Dim objDocNew As Word.Document
        
        '读取指定文件至Doc对象
        Set objDoc = objWord.Documents.Open("D:新建 Microsoft Word 文档.docx")
        Set objDocNew = objWordNew.Documents.Open("D:sql.docx")
        
    
         'Table对象定义
        Dim objTable As Word.Table
        Dim tempStr
        tempStr = ""
        
        '读取指定文件中的表1至Table对象
        'Set objTable = objDoc.Tables(2)
        For a = 1 To objDoc.Tables.Count
            Set objTable = objDoc.Tables(a)
            tempStr = tempStr + "CREATE TABLE ("
            tempStr = tempStr + Chr(10)
            For i = 2 To objTable.Rows.Count
                    
                    'tempStr = tempStr + "'" + Application.WorksheetFunction.Clean(objTable.Cell(i, 2).Range.Text) + "' " + objTable.Cell(i, 4).Range.Text + " COMMENT '" + objTable.Cell(i, 2).Range.Text + objTable.Cell(i, 6).Range.Text + "'"
                    tempStr = tempStr + "'" + Replace(Replace(objTable.Cell(i, 2).Range.Text, Chr(10), ""), Chr(13), "") + "' " + Replace(Replace(objTable.Cell(i, 4).Range.Text, Chr(10), ""), Chr(13), "") + " COMMENT '" + Replace(Replace(objTable.Cell(i, 3).Range.Text, Chr(10), ""), Chr(13), "") + Replace(Replace(objTable.Cell(i, 6).Range.Text, Chr(10), ""), Chr(13), "") + "'"
                    
                    'tempStr = Replace(tempStr, Chr(10), "")
                    'tempStr = Replace(tempStr, Chr(13), "")
                    tempStr = tempStr + Chr(10)
            Next
            tempStr = tempStr + ")ENGINE=MyISAM DEFAULT CHARSET=utf8;"
            tempStr = tempStr + Chr(10)
            tempStr = tempStr + Chr(10)
        Next
        
        objDocNew.Range.Text = tempStr
        '关闭Doc对象
        objDoc.Close
        objDocNew.Close
        
        '关闭Word对象
        objWord.Quit
        objWordNew.Quit
        
        
        '清除Table对象
        Set objTable = Nothing
        '清除Doc对象
        Set objDoc = Nothing
        '清除Word对象
        Set objWord = Nothing
    End Sub

    中间有一些替换回车换行符的,也有添加的,为了生成理想的格式,拼接字符串。

    欢迎大家加我qq:309620263探讨技术问题。
  • 相关阅读:
    HUT1674 火柴棒等式
    HUT1694 零用钱 贪心
    HDU2201 熊猫阿波的故事
    HUT1685 奶牛的锻炼 DP
    HUT1675 找啊找啊找GF DP
    HUT1673 传纸条
    HUT1697 棋盘覆盖
    TYVJ1185 营业额统计 Splay
    HUT2602 01背包 记录路径
    POJ3468 A Simple Problem with Integers Splay树
  • 原文地址:https://www.cnblogs.com/PPBoy/p/7158716.html
Copyright © 2011-2022 走看看