使用Excel自动生成Java中的Model类

 同事写的使用Excel生成Java的Model类的宏。我觉得很实用,赞一个,也顺便推广一把。

如图所示:

Alt+F11进入后台:

代码如下:

Private Sub CommandButton1_Click()

    Set fs = CreateObject("Scripting.FileSystemObject")
    
    fileNm = Range("C3").Value
    
    tbNm = Range("B3").Value
    tbId = Range("C3").Value
    ctDate = Range("D3").Value
    ctNm = Range("E3").Value
    
    classNm = "T" + UCase(Mid(tbId, 3, 1)) + Mid(tbId, 4, Len(tbId))
    
    filePath = "C:/" + classNm + ".java"
    
    Set output = fs.CreateTextFile(filePath, True, True)
    
    output.WriteLine ("package com.nauproject.apm.entity.base;")
    output.WriteLine ("")
    output.WriteLine ("import java.io.Serializable;")
    output.WriteLine ("")
    output.WriteLine ("import org.seasar.dao.annotation.tiger.Bean;")
    output.WriteLine ("")
    output.WriteLine ("/**")
    output.WriteLine (" * <P>")
    output.WriteLine (" * " + tbNm + " " + classNm + " 僋儔僗")
    output.WriteLine (" * </P>")
    output.WriteLine (" * <BLOCKQUOTE> Copyright (C) 2008-2009, apm. All rights reserved. </BLOCKQUOTE>")
    output.WriteLine (" * <P>")
    output.WriteLine (" * </P>")
    output.WriteLine (" * <B>夵斉棜楌:</B> <BLOCKQUOTE> " + ctDate + " 1.0.0 " + ctNm + " 怴婯嶌惉 </BLOCKQUOTE>")
    output.WriteLine (" *")
    output.WriteLine (" * @author " + ctNm)
    output.WriteLine (" * @since " + ctDate)
    output.WriteLine (" * @see")
    output.WriteLine (" * @version 1.0, " + ctDate)
    output.WriteLine (" */")
    output.WriteLine ("@Bean(table = """ + tbId + """)")
    output.WriteLine ("public class " + classNm + " implements Serializable {")
    output.WriteLine ("")
    output.WriteLine ("    /**")
    output.WriteLine ("     * @see serialVersionUID")
    output.WriteLine ("     */")
    output.WriteLine ("    private static final long serialVersionUID = ;")
    output.WriteLine ("")
    
    countC = 0
    
    For i = 8 To 208
    
        If Cells(i, 3).Value <> "" Then
            countC = countC + 1
        End If

    Next
    
    For k = 1 To countC
    
        output.WriteLine ("    /**")
        output.WriteLine ("     * @see " + Cells(k + 7, 2))
        output.WriteLine ("     */")
        output.WriteLine ("    private " + Cells(k + 7, 4).Value + " " + Cells(k + 7, 3).Value + ";")
        output.WriteLine ("")

    Next
    
    For k = 1 To countC

        If Cells(k + 7, 4).Value = "int" Then
            paramId = "int"
        Else
        
            If Cells(k + 7, 4).Value = "String" Then
                paramId = "str"
            Else
            
                If Cells(k + 7, 4).Value = "Date" Then
                    paramId = "date"
                Else
                    paramId = ""
                End If
            End If
            
        End If
        
        uId = UCase(Mid(Cells(k + 7, 3).Value, 1, 1)) + Mid(Cells(k + 7, 3).Value, 2, Len(Cells(k + 7, 3).Value))
        
        output.WriteLine ("    /**")
        output.WriteLine ("     * @param " + paramId + uId + " " + Cells(k + 7, 2))
        output.WriteLine ("     */")
        output.WriteLine ("    public final void set" + uId + "(final " + Cells(k + 7, 4).Value + " " + paramId + uId + ") {")
        output.WriteLine ("        this." + Cells(k + 7, 3).Value + " = " + paramId + uId + ";")
        output.WriteLine ("    }")
        output.WriteLine ("")
        output.WriteLine ("    /**")
        output.WriteLine ("     * @return " + Cells(k + 7, 2))
        output.WriteLine ("     */")
        output.WriteLine ("    public final " + Cells(k + 7, 4).Value + " get" + uId + "() {")
        output.WriteLine ("        return " + Cells(k + 7, 3).Value + ";")
        output.WriteLine ("    }")
        output.WriteLine ("")

    Next
    
    output.WriteLine ("}")
    output.Close

End Sub


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值