乐时光博客园子

代码如下:

仅一个HTML即可完成

<!-- Bootstrap -->    
<link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">    
<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->    
<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->    
<!--[if lt IE 9]>    
      <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>    
      <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>    
    <![endif]-->    
<style>    
tr{    
border-top:1px solid #000;    
}    
</style>    
<textarea class="form-control" rows="30" placeholder="黏贴 c# model 实体类" id="model">  #region 客户信息    
/// <summary>    
/// 创建时间    
/// </summary>    
public DateTime CreateDate { set; get; }    
/// <summary>    
/// 客户Id    
/// </summary>    
public int UserID { set; get; }    
/// <summary>    
/// 客户姓名    
/// </summary>    
public string UserName { get; set; }    
</textarea>    
<button style="margin-top:20px;" class="btn btn-primary" type="button" onclick="CreateTable()">生成实体表格</button>    
<button style="margin-top:20px;" class="btn btn-primary" type="button" onclick="ExportExcel()">导出Excel</button>    
<div class="row" id="tablesDiv">    
<table class="table table-hover table-striped" style="margin-top:20px; margin-bottom:50px; border:1px solid #000;">    
<thead>    
<tr>    
<th>字段</th>    
<th>属性</th>    
<th>备注</th>    
</tr>    
</thead>    
<tbody id="tb"></tbody>    
</table>    
</div>    
<!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->    
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>    
<!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->    
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>    
<script>    
var tableList = [];    
function CreateTable() {    
tableList = [];    
var model = $("#model").val();    
var models = model.split('\n');    
var isAdd = false;    
var name = "";    
var types = "";    
var remark = "";    
$(models).each(function (index, item) {    
if (item.indexOf('/// <summary>') > -1 || item === '' || item.indexOf('/// </summary>')>-1) {    
return true;    
}    
if (item.indexOf('///') > -1) {    
remark += item;    
return true;    
}    
if (item.indexOf('//') > -1) {    
return true;    
}    
if (item.indexOf('public') > -1 && item.indexOf('set;') > -1 && item.indexOf('get;')>-1) {    
var field = item.split(' ');    
$(field).each(function (index2, item2) {    
if (name !== '' && types !== '') {    
return false;    
}    
if (item2 == '') {    
return true;    
}    
if (types === '' &&  item2!=='public') {    
types = item2;    
return true;    
}    
if (name === '' && item2 !=='public') {    
name = item2;    
return true;    
}    
});    
}    
if (name !== '' && types !== '' && remark !== '') {    
isAdd = true;    
}    
if (isAdd) {    
tableList.push(    
{    
"name": name,    
"types": types,    
"remark": remark    
}    
);    
name = "";    
types = "";    
remark = "";    
isAdd = false;    
}    
});    
var tb = $("#tb");    
var tbHtml = '';    
console.log(tableList.length)    
$(tableList).each(function (index, item) {    
tbHtml = '';    
tbHtml += '<tr>';    
tbHtml += '<td>' + item.name + '</td>';    
tbHtml += '<td>' + item.types + '</td>';    
tbHtml += '<td>' + item.remark + '</td>';    
tbHtml += '</tr>';    
tb.append(tbHtml);    
});    
}    
</script>    
<script>    
function ExportExcel() {    
var excelContent = $("#tb").html();    
// 		alert(excelContent);    
var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";    
excelFile += "<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head>";    
excelFile += "<body><table width='10%'  border='1'>";    
excelFile += excelContent;    
excelFile += "</table></body>";    
excelFile += "</html>";    
var link = "data:application/vnd.ms-excel;base64," + base64(excelFile);    
var a = document.createElement("a");    
a.download =  "tmp.xlsx";    
a.href = link;    
a.click();    
}    
function base64(content) {    
return window.btoa(unescape(encodeURIComponent(content)));    
}    
</script>


上下篇:

相关推荐