美文网首页我爱编程
tableExport.js 中关于特殊字符的导出

tableExport.js 中关于特殊字符的导出

作者: 你才是小白 | 来源:发表于2018-03-30 15:33 被阅读0次

出现的现象

当table表格中有类似尖括号的特殊字符时,导出就会出现问题,

例如:如下图所示

导出后的格式如下 (xml) 格式 就会出现xml标签不对的问题

如果 表格数据中包含 <fdd>等类型的数据后 ,导出的excel中直接丢失

丢失的原因

var text = htmlData.replace(/\n/g, '\u2028').replace(//gi, '\u2060');

var obj = $('div').html(text).contents(); var number = false; text = ''; $.each(obj.text().split("\u2028"), function (i, v) { if ( i > 0 ) text += " "; text += $.trim(v); });

查看源码得知 

htmlData为 $("td").html()获取的。但是 表格td中嵌套 特殊字符时 对于不识别的标签进行了显示。(html的解析方式,对于不识别标签当成文本处理)

但是在 jquery的这个方法中  $('div').html(text).contents()中 获取了一个 obj,

再用obj获取 text()时 此时 会把 特殊字符的标签忽略。原因在于 $.html()方法会把<ddd>这种标签还原为一个标签。

解决办法

       在导出的回调方法中添加过滤如下

附录 

consoleLog: false

csvEnclosure: '"'

csvSeparator: ','

csvUseBOM: true

displayTableName: false

escape: false

excelFileFormat: 'xlshtml'

excelPageOrientation: 'portrait'

excelRTL: false

excelstyles: []

exportHiddenCells: false

fileName: 'tableExport'

htmlContent: false

ignoreColumn: []

ignoreRow: []

jsonScope: 'all'

jspdf: orientation: 'p'

      unit:'pt'

      format: 'a4'

      margins: left: 20

                right: 10

                top: 10

                bottom: 10

      onDocCreated: null

      autotable: styles: cellPadding: 2

                          rowHeight: 12

                          fontSize: 8

                          fillColor: 255

                          textColor: 50

                          fontStyle: 'normal'

                          overflow: 'ellipsize'

                          halign: 'left'

                          valign: 'middle'

                  headerStyles: fillColor: [52, 73, 94]

                                textColor: 255

                                fontStyle: 'bold'

                                halign: 'center'

                  alternateRowStyles: fillColor: 245

                  tableExport: doc: null

                              onAfterAutotable: null

                              onBeforeAutotable: null

                              onAutotableText: null

                              onTable: null

                              outputImages: true

maxNestedTables: 1

numbers: html: decimalMark: '.'

              thousandsSeparator: ','

        output: decimalMark: '.',

                thousandsSeparator: ','

onCellData: null

onCellHtmlData: null

onIgnoreRow: null

onMsoNumberFormat: null

outputMode: 'file'

pdfmake: enabled: false

        docDefinition: pageOrientation: 'portrait'

                        defaultStyle: font: 'Roboto'

        fonts: {}

tbodySelector: 'tr'

tfootSelector: 'tr'

theadSelector: 'tr'

tableName: 'myTableName'

type: 'csv'

worksheetName: 'WorksheetName'

相关文章

  • tableExport.js 中关于特殊字符的导出

    出现的现象 当table表格中有类似尖括号的特殊字符时,导出就会出现问题, 例如:如下图所示 导出后的格式如下 (...

  • CTex参考文献/BibTex

    .bib文件中的&和_符号(属于特殊字符)不能直接出现,需要替换为\&和\_ Google学术导出bibtex文献...

  • 网址URL中特殊字符转义编码

    网址URL中特殊字符转义编码字符 - URL编码值 URL特殊字符转义,URL中一些字符的特殊含义,基...

  • 关于URL中的特殊字符串

    url参数中有+、空格、=、%、&、#等特殊符号的问题解决? 解决办法:将这些字符转化成服务器可以识别的字符,对应...

  • 关于Android应用中特殊字符的显示

    前言 日常开发中,有时候会遇到特殊字符的显示,比如数学符号、罗马字符、特殊单位等等。常见的字符可以直接输入,但是比...

  • 判断字符串中是否含有特殊字符

    判断字符串中是否含有特殊字符 处理html特殊字符转义问题参考文章

  • 总结

    最近做的 关于进入cell记住状态的问题和iOS中字符串的转译如过后台有特殊处理比如对特殊字符的处理。我们客户端就...

  • 错误提示:The reference to entity "us

    XML中的特殊字符 XML中总共有5个特殊字符,如果配置文件中要写这些特殊字符的话,就需要进行特别处理。 使用XM...

  • 转义字符的含义

    转义字符,反斜线 \ ,是一个有特殊含义的字符,所谓特殊含义的字符,是说,你输入的字符串中如果含有特殊的字符,这个...

  • PHP导出Excel去掉微信昵称中的特殊字符

    由于excel中以=开头会报错,所以还需要再一步处理

网友评论

    本文标题:tableExport.js 中关于特殊字符的导出

    本文链接:https://www.haomeiwen.com/subject/ogdicftx.html