DB建模工具-Excel表结构导入PowerDesigner
Excel
上市公司年报 | bd_quoted_company_annual_report | |||||
---|---|---|---|---|---|---|
字段中文名 | 字段名 | 字段类型 | 注释 | 主键 | 默认值 | 字段名 |
对象ID | object_id | VARCHAR(100) | 对象ID | OBJECT_ID | ||
证券代码 | stock_code | VARCHAR(40) | 证券代码 | 是 | Stock_CODE | |
证券简称 | stock_name | VARCHAR(40) | 证券简称 | Stock_NAME | ||
行业 | industry | VARCHAR(40) | 行业 | industry | ||
年份 | year | VARCHAR(10) | 年份 | 是 | year | |
季度 | quarter | VARCHAR(10) | 年报:0,季报:3、6、9、12 | 是 | quarter | |
报告期 | report_period | VARCHAR(10) | 报告期 | REPORT_PERIOD | ||
公告标题 | ann_title | VARCHAR(100) | 公告标题 | ann_title | ||
公告正文标题 | ann_body_title | VARCHAR(100) | 公告正文标题 | ann_body_title | ||
公告url | ann_url | VARCHAR(1000) | 公告url | ann_url | ||
公告日期 | ann_dt | VARCHAR(20) | 公告日期 | ANN_DT | ||
官方pdf地址 | official_pdf_url | VARCHAR(1000) | 官方pdf地址 | official _pdf_url | ||
官方pdf名 | official_pdf_name | VARCHAR(100) | 官方pdf名 | official _pdf_name |
Excel宏定义
Option Explicit
Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no Active Model"
End If
Dim HaveExcel
Dim RQ
RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes Then
HaveExcel = True
' Open & Create Excel Document
Dim x1 '
Set x1 = CreateObject("Excel.Application")
x1.Workbooks.Open "C:\Users\hun.wong\Desktop\hm-bigdata-table1.xlsx"
x1.Workbooks(1).Worksheets("主营业务收入成本").Activate
Else
HaveExcel = False
End If
a x1, mdl
sub a(x1,mdl)
dim rwIndex
dim tableName
dim colname
dim table
dim col
dim count
'on error Resume Next
For rwIndex = 1 To 1000 step 1
With x1.Workbooks(1).Worksheets("主营业务收入成本")
'MsgBox "生成数据表结构共计1 ="+CStr(.Cells(2,2).Value ), vbOK + vbInformation, "表"
If .Cells(rwIndex, 1).Value = "" Then
rwIndex = rwIndex + 1
IF .Cells(rwIndex, 1).Value = "" then
Exit For
end if
End If
If .Cells(rwIndex, 3).Value = "" Then
set table = mdl.Tables.CreateNew
table.Name = .Cells(rwIndex , 1).Value
table.Code = .Cells(rwIndex , 2).Value
table.Comment = .Cells(rwIndex, 1).Value
rwIndex = rwIndex + 1
count = count + 1
Else
colName = .Cells(rwIndex, 1).Value
set col = table.Columns.CreateNew
'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列"
col.Name = .Cells(rwIndex, 1).Value
'MsgBox col.Name, vbOK + vbInformation, "列"
col.Code = .Cells(rwIndex, 2).Value
col.Comment = .Cells(rwIndex,4).Value
col.DataType = .Cells(rwIndex, 3).Value
If .Cells(rwIndex, 5).Value ="是" then
col.Primary = true
end if
If .Cells(rwIndex, 6).Value <>"" then
col.DefaultValue = .Cells(rwIndex, 6).Value
end if
End If
End With
Next
MsgBox "生成数据表结构共计" + CStr(count), vbOK + vbInformation, "表"
x1.Workbooks.Close
Exit Sub
End sub
打开PowerDesigner,如下图执行脚本
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!