社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
同事写的使用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
关注公众号 —— 加入社区微信群 —— →「Go语言教程」领取
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!