使用的工具是:MicrosoftOffice Excel 2013、Notepad++ v7.5.8

Spark数据处理任务生成了CSV格式的数据文件,然后要手动将CSV数据转换成excel文件,为了能识别分隔符自动分列以及中文不乱码:新建一个excel文件,然后在上方功能区选择“数据”-->“自文本”导入数据进excel文件,剩下的操作参考百度经验教程。然后提示报错“此文本文件包含的数据无法放置在一个工作表中。如要继续导入可容纳的数据,请单击确定。。。”,点击确定后只导入了第一行。

上网搜索了一下原因,说是文本文件行数超过了excel文件行数,于是我就去看了excel文件的最大行数,通过快捷键“ctrl + ⬇”到达excel文件的底部,发现excel文件最大行数是1048576,不过我的文件最大也是40多万条数据,按理说应该不会超过才对,那就可能是excel软件识别有问题。

但是我突发奇想,决定试试将CSV文件另存为另一个行数较少(65536)的CSV文件,然后再导入excel文件。于是用Notepadd++打开CSV文件,再另存修改文件拓展名。然后再导入excel文件发现居然成功了,按照这个操作40多万的数据也可以导入。解决方法就是:使用Notepadd++文本编辑器打开原始文件再复制里面内容另存为新文件,用新文件就可以导入数据文本了。(一定要复制内容另存新文件,不能直接打开再另存为新文件,不然还是不行),但是Notepadd++处理大文件会比较吃力,耗费时间长,性能没有UltraEdit强,如果是大文件推荐使用UltraEdit批量替换换行符,具体为什么要批量替换换行符及操作见下面说明。

具体原因的话我估计是因为excel文件识别换行符必须是 “\r”(回车CR)+ “\n”(换行LF),Spark数据处理任务生成的CSV文件只有“\n”(换行LF),因此对于excel文件来说就是不换行,然后列数超过限制了提示报错,而不是上面提到的行数超过限制提示报错。至于为什么会有这种差别是因为不同操作系统定义的换行不一样,Linux系统的换行是 “\n”(换行LF),我的Spark数据处理任务生成的CSV文件就是在Linux服务器生成的,而Windows系统的换行是“\r”(回车CR)+ “\n”(换行LF),因此Windows系列的软件Excel识别的换行跟Windows系统是一样的。这两个符号的区别是通过Notepadd++编辑器打开后显示全部符号才看出来的,一般比较难发现,如下所示,Notepad++在复制内容另存新文件后会自动补充为回车换行符。然后试了一下UltraEdit编辑器,发现不行,因为UltraEdit不会自动补充。然后又试了一下替换换行符为回车换行符,发现Notepad++可以替换,然后导入excel,UltraEdit编辑器也可以替换(推荐使用,性能好,数据量多时替换快),不过匹配模式要选择正则表达式,将\n替换为\r\n即可,详细配置见下图。

导出的原始CSV文件

使用Notepad++另存后的CSV文件

Notepad++批量替换

UltrEdit批量替换,正则表达式还要选择Unix类型

问题记录:从EXCEL2013导入数据CSV文件,提示报错“此文本文件包含的数据无法放置在一个工作表中。如要继续导入可容纳的数据,请单击确定。。。”相关推荐

  1. 关于csv文件导入excel出现“此文本文件包含的数据无法放置在一个工作表中。如要继续导入可容纳的数据,请单击确定。。。”的错误

    csv默认的文件换行符号是"\n"(换行LF),而excel默认的文件换行符号是"\r"(回车CR) + "\n"(换行LF),所以csv文 ...

  2. 使用Maven创建Web项目后,jsp引入静态文件提示报错。JSP 报错:javax.servlet.ServletException cannot be resolved to a type...

    用maven创建多模块的web工程后,不同于直接创建普通的web工程. 1.在普通的web工程创建后,在项目中会有tomcat等服务器的jar包,这时创建JSP文件肯定是没有错的: 2.即使是使用ma ...

  3. mac 上 csv导入Excel 出现 “此文本文件包含的数据无法放置在一个工作表” 错误

    0.首先确认你的csv文件不能太大,我也不知道行数上限是多少,但是我导入过150w的内容,没有成功... 1.编码问题,确认你csv的编码是utf-8,而且Excel导入的时候选择的也是utf-8 2 ...

  4. python 打开csv文件,报错'utf-8' codec can't decode bytes in position 16: invalid continuation byte

    问题: with open(1.csv, 'r', encoding='utf-8'):ori_lines = f.readlines()...... 运行报错: 'utf-8' codec can' ...

  5. 读取CSV文件read_csv报错FileNotFoundError:File b‘.csv‘ does not exist

    FileNotFoundError:File b'.csv' does not exist错误,却不是由于路径产生的问题时: 将文件的相对路径改为绝对路径,并且将单斜杠\改为双斜杠\或者反斜杠/. 例 ...

  6. python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因

    1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...

  7. oracle删除表中数据_Excel工作表中,删除重复数据的2种方法解读,高效且实用!...

    在实际的工作中,经常要对工作表中重复的数据进行删除,如若数据行只有几条,则可通过人工查找出来,如若数据行较多,这种方法就费时费力,而且容易出错,造成对表格数据的准确性和个人能力的怀疑--今天,小编给大 ...

  8. 如何将数据库的数据导入到csv文件中

    如何将数据库的数据导入到csv文件中 2011-01-13 20:23 set colsep ,     -- separate columns with a comma set pagesize 0 ...

  9. php mysql导出csv文件_详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `student` ( ...

最新文章

  1. 巩固好基础,才能学好Linux
  2. 搞垮服务的20条原则
  3. 2020年度“中国神经科学重大进展”获奖名单【附成果介绍】
  4. 机器学习读书笔记(一)
  5. http超文本传输协议的http头部分析
  6. Linux errno 列表
  7. python 比赛成绩预测_大数据新研究:用六个月的跑步记录准确预测马拉松完赛成绩...
  8. Oracle数据库导入导出 imp/exp备份还原
  9. android eclipse自动更新,Android Eclipse 升级ADT到24.0.2完美解决方案
  10. (3~4):C实现数组选择排序
  11. 【漫画】AI小猪的一生---阿里云ET农业大脑如何与特驱集团养出“200公里猪”
  12. 计算机控制系统的实时控制应用,计算机控制系统实时性的提高策略
  13. 发那科机器人圆弧指令怎么用_发那科机器人PR指令
  14. 技术分享 | MySQL:caching_sha2_password 快速问答
  15. a55 matlab排列组合_matlab矩阵排列组合
  16. 专为风电筒叶片除冰研发的爬壁机器人
  17. win10卸载python3
  18. Java实现图片格式转换(通过ImageIO)
  19. 服务器php装什么系统,php用什么系统做服务器配置
  20. 【单片机开发】stm32f429在线IAP 实现SD卡烧写程序

热门文章

  1. Android 签名证书生成及jks与keystore 相互转换
  2. Windows XP
  3. 编码标准:纪律和人因工程的双剑合璧
  4. android禁止输入字符,Android输入框禁止输入表情符号、特殊字符
  5. gog百度百科_游戏百科,gog游戏百科
  6. 在C中嵌套汇编代码难吗?
  7. 嵌入式开发常见宏定义
  8. 如何关闭电脑开机时自动启动的软件?
  9. 全年销售完成目标,远洋集团的根本问题却仍未解决
  10. 二进制与十进制的转换技巧