前言

之前在入门系列的教程中,我们常用 d3.json() 函数来读取 json 格式的文件。json 格式很强大,但对于普通用户可能不太适合,普通用户更喜欢的是用 Microsoft Excel 或 OpenOffice Calc 等生成的表格文件,因为简单易懂,容易编辑。
Microsoft Excel 通常会保存为 xls 格式, OpenOffice Calc 通常会保存为 ods 格式。这些格式作为表格文件来说都很强大,但要读取它们是有些麻烦的,D3 中也没有提供这样的方法。但是表格软件都会支持生成csv 格式,它是一种非常基本的、通用的、简单的表格文件。本文将会说明在 D3 中怎么读取和使用 csv 文件,下面来看看详细的介绍:
1. CSV 格式是什么
CSV(Comma Separated Values),逗号分隔值,它是以纯文本形式存储表格数据的,每个单元格之间用逗号(Comma)分隔。CSV格式没有一个通用标准,通常使用的是RFC 4180 中所示的描述。
CSV 的文本格式如下:
省份,人口,GDP 山东,9000,50000 浙江,5000,20000
理解起来非常简单,每一个单元格之间用逗号隔开。如果想在单元格里输入逗号怎么办呢?用双引号框起来就行,如下:
省份,人口,GDP 山东,"9,000","50,000" 浙江,"5,000","20,000"
有些软件在保存CSV格式时,会让你选择使用什么符号(逗号、分号等)来分隔单元格,尽量选择逗号吧。
2. 在 OpenOffice 中编辑和保存 CSV 文件
Microsoft Excel 虽然强大却是收费的,近几年我已不使用。 OpenOffice 不仅开源免费,而且功能同样强大。下面来说一下用 OpenOffice 怎么编辑和保存为 CSV 文件,当然一般自己摸索着也能会用,非常简单。
(1) 首先,打开 OpenOffice Calc 。就像 Microsoft Office 中有 Word、Excel、PowerPoint 一样,OpenOffice 中编辑表示使用的是 Calc 。打开之后,像正常一样输入单元格的内容,假设输入如下:
(2)点击“文件”,“另存为”。文件类型选择 “CSV 文本”,底下再勾选上“编辑筛选设置”。
(3) 弹出的对话框中,选择编码(建议用 UTF8),字段分隔符选择"逗号",文本分隔符选择“分号”。点击“确定”。
(4) 保存成功后,用记事本打开,结果如下:
在 D3.js 中,读取 CSV 文件的函数只支持用逗号分隔单元格,所以请务必这样保存。
3. 在 D3.js 中读取 CSV 文件
在 D3.js 中提供了 d3.csv() 函数来读取 CSV 文件。函数 API 可参见: https://github.com/mbostock/d3/wiki/CSV 。
用它读取文件的代码如下:
d3.csv("table.csv",function(error,csvdata){
if(error){
console.log(error);
}
console.log(csvdata);
});
这段代码是读取了 table.csv 文件后,再输出读到的数据。输出如下:
我们可以看到,变量中 csvdata 是保存了一个数组,数组中的每个元素都一个对象,每个对象里都有 age 、name、sex 三个成员变量。这三个成员变量正是所编辑的表格的头一排的三个单元格。如此,我们就可以在代码中这样调用了。
for( var i=0; i<csvdata.length; i++ ){
var name = csvdata[i].name;
var sex = csvdata[i].sex;
var age = csvdata[i].age;
console.log( "name: " + name + "\n" +
"sex: " + sex + "\n" +
"age: " + age );
}
4. 将读入的数据转换为字符串
在 D3 的官方 API 中,看上去似乎还有一些函数: parse 、parseRows、format、formatRows。但经过我的试验,只有 format 一个函数可以使用,其它的都是在 D3 内部使用的。基本上需要读入 CSV 的数据的情况下,只要有上面第3节所叙述的内容就足够了。
下面是 format 的使用方法。
d3.csv("table.csv",function(error,csvdata){
var str = d3.csv.format( csvdata );
console.log(str.length);
console.log(str);
});
上面的代码,str 中保存的就是转换后的字符串。
总结
CSV 格式是一种非常简单的表格文件,它的每个单元格以逗号分隔,有的表格编辑软件在保存的时候会让选择用分号或逗号等保存,这时候最好是选择用逗号。
在 D3 中读取 CSV 文件基本上只需要用 d3.csv() 函数即可。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# d3.js读取本地csv文件
# d3.js读取csv的某一行
# d3.js
# 读取csv
# 使用javascript实现json数据以csv格式下载
# javascript实现客户端兼容各浏览器创建csv并下载的方法
# JS兼容浏览器的导出Excel(CSV)文件的方法
# js读取csv文件并使用json显示出来
# JavaScript将数组转换成CSV格式的方法
# js使用文件流下载csv文件的实现方法
# 单元格
# 的是
# 保存为
# 山东
# 浙江
# 格里
# 普通用户
# 通常会
# 是在
# 分隔符
# 都有
# 是一种
# 好了
# 就像
# 却是
# 将会
# 不太
# 也能
# 中有
# 它是
相关文章:
网站代码制作软件有哪些,如何生成自己网站的代码?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何通过老薛主机一键快速建站?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
婚礼视频制作网站,学习*后期制作的网站有哪些?
详解jQuery停止动画——stop()方法的使用
建站之星在线版空间:自助建站+智能模板一键生成方案
如何通过西部数码建站助手快速创建专业网站?
实现虚拟支付需哪些建站技术支撑?
制作网站外包平台,自动化接单网站有哪些?
建站主机默认首页配置指南:核心功能与访问路径优化
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
,在苏州找工作,上哪个网站比较好?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
建站中国官网:模板定制+SEO优化+建站流程一站式指南
c# await 一个已经完成的Task会发生什么
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何挑选最适合建站的高性能VPS主机?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
制作农业网站的软件,比较好的农业网站推荐一下?
制作营销网站公司,淘特是干什么用的?
盐城做公司网站,江苏电子版退休证办理流程?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
建设网站制作价格,怎样建立自己的公司网站?
如何通过商城自助建站源码实现零基础高效建站?
Swift中switch语句区间和元组模式匹配
图册素材网站设计制作软件,图册的导出方式有几种?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
建站之星如何取消后台验证码生成?
如何通过远程VPS快速搭建个人网站?
制作网页的网站有哪些,电脑上怎么做网页?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何访问已购建站主机并解决登录问题?
如何通过可视化优化提升建站效果?
建站主机类型有哪些?如何正确选型
建站之星如何助力企业快速打造五合一网站?
青岛网站建设如何选择本地服务器?
如何用PHP快速搭建CMS系统?
如何高效完成自助建站业务培训?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
宝塔面板创建网站无法访问?如何快速排查修复?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
网页设计网站制作软件,microsoft office哪个可以创建网页?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
广州美橙建站如何快速搭建多端合一网站?
如何基于云服务器快速搭建网站及云盘系统?
如何在景安服务器上快速搭建个人网站?
建站之星后台管理:高效配置与模板优化提升用户体验
*请认真填写需求信息,我们会在24小时内与您取得联系。