在 js-xlsx 的 table_to_sheet 或 table_to_book 函数方法中 加入 { raw: true } 即可.
{ raw: true }的作用是把数字当成string,身份证等长数字不会被转换成科学计数法而丢失数据.
var sheet = XLSX.utils.table_to_sheet(objE.childNodes[0], { raw: true })// 将一个table对象转换成一个sheet对象,raw为true的作用是把数字当成string,身份证不转换成科学计数法
一个实例:
Html代码
<script src="Scripts/js_xlsx/xlsx.full.min.js" ></script>
<script> function doit(type, fn, dl) {var elt = document.getElementById('MainContent_GVStudents');var wb = XLSX.utils.table_to_book(elt, { sheet: "Sheet JS", raw: true}); //此处加raw:true 作用是把数字当成string,身份证等长数字不转换成科学计数法return dl ?XLSX.write(wb, { bookType: type, bookSST: true, type: 'base64' }) :XLSX.writeFile(wb, fn || ('SheetJSTableExport.' + (type || 'xlsx')));}
</script>
<div style =" width :1024px;height:768px;background-color :lightgray; margin :0 auto;"><p><asp:Button ID="BtnSearch" runat="server" Text="查询" OnClick="BtnSearch_Click" /><input type="submit" value="Export to XLSX!" onclick="doit('xlsx');" /><asp:Button ID="BtnImport" runat="server" Text="导入" /></p><p><asp:GridView ID="GVStudents" runat="server" style ="width:100%;"></asp:GridView></p>
</div>
C#代码
protected void BtnSearch_Click(object sender, EventArgs e)
{MySqlConnection NewSearch = new MySqlConnection();DataSet DSStudent = NewSearch.MySqlSearch("SELECT * FROM TableStudent");GVStudents.DataSource = DSStudent.Tables[0];GVStudents.DataBind();
}
实现效果