excel数据复制粘贴到html

独坐古树 2018-08-28 09:56:56
如题
正常excel数据复制粘贴到html没问题.
但是,excel中的某条数据中的某个单元格存在换行时,则本次粘贴操作数据混乱
比如: 6666\t77777\t8888\t99999\taaaaa\n 这是正常数据,单元格内不存在换行数据
"bbbbb\nkkkkk"\tcccccc\tddddd\teeeee\tfffff\n 这是单元格内存在换行数据
代码:

var arr = data.split('\n')
.filter(function(item) {
return (item !== "")
}).map(function(item) {
return item. split("\t");
});

请问怎么拆分单元格中存在换行符的数据,才不至于使数据粘贴时混乱
...全文
670 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hello World, 2018-09-11
  • 打赏
  • 举报
回复
Excel数据一行结束是用\r\n分隔,单元格内换行是用\n分隔,单元格之间是用\t分隔,所以你拆分整行的时候就不能用\n,单元格内的行才用\n拆分:


data = clipboardData.getData('Text');
//按excel的行进行拆分
var rows = data.split('\r\n');
for (var i = 0, n = rows.length; i < n; i++) {
//获取每行的各个单元格数据
var cells = rows[i].split('\t');
for (var j = 0, l = cells.length; j < l; j++) {
var value = cells[j];
//如果有换行时excel会用""包裹内容,此处去掉前后"
if (/\n/.test(value)) {
value = value.replace(/^\"/, '').replace(/\"$/, '');
}
//将单元格数据按行拆分
var valueRows = value.split('\n');
}
}
独坐古树 2018-09-11
  • 打赏
  • 举报
回复
兄弟你这个方法不不行,我的思路是
先将excel中复制的数据先按行(这里目前是根据制表符\n实现)拆分,然后再根据单元格拆分(这里是根据制表符\t)
现在问题产生原因,单元格中含有换行符"\n",系统在拆分的时候就会把含有换行符的单元格数据
单独算做一行数据,这样就造成了后续数据排序出错
丰云 2018-08-28
  • 打赏
  • 举报
回复
当你尝试来一个意外解决一个意外时,你会发现,意外永远解决不完

这就是为什么说不以规矩不成方圆了,
该立规矩时,就要立规矩!!

当然,你喜欢被虐,那就继续慢慢解决吧
Logerlink 2018-08-28
  • 打赏
  • 举报
回复
这样试试

var arr = data.split('\t')
.map(function(item) {
return item.replace('\n','')
});
console.log(arr)
// [""bbbbbkkkkk"", "cccccc", "ddddd", "eeeee", "fffff"]
console.log(arr.join('\t'))
//"bbbbbkkkkk" cccccc ddddd eeeee fffff
console.log()



87,972

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧