在 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();
}
实现效果