中企动力 > 商学院 > 读取excel数据
  • ?

    整理关于java读取excel内容的例子供大家参考

    於妙柏

    展开

    1POI简介

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

    2POI下载

    poi下载地址:https://apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.17-20170915.tar.gz

    下载之后把压缩包解压,然后在项目里面引用解压文件夹里面的jar

    3新建java project,引入poi相关的jar

    4创建一个java类,编写代码

    package test;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.InputStream;

    import org.apache.poi.hssf.usermodel.HSSFRow;

    import org.apache.poi.hssf.usermodel.HSSFSheet;

    import org.apache.poi.hssf.usermodel.HSSFWorkbook;

    public class ReadExcel {

    /**

    * @param args

    */

    @SuppressWarnings("resource")

    public static void main(String[] args) {

    try {

    InputStream is = new FileInputStream(new File(

    "D:/360bizhi/0_TITLE_CODE.xls"));

    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

    // 获取每一个工作薄

    for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {

    HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);

    if (hssfSheet == null) {

    continue;

    }

    // 获取当前工作薄的每一行

    for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {

    HSSFRow hssfRow = hssfSheet.getRow(rowNum);

    if (hssfRow != null) {

    String title_id = String.valueOf(hssfRow.getCell(0));

    // 读取第一列数据

    String title_name = String.valueOf(hssfRow.getCell(1));

    // 读取第二列数据

    String title_name_en = String.valueOf(hssfRow

    .getCell(2));

    System.out.println("===============title_id:"

    + title_id + ",title_name:" + title_name

    + ",title_name_en:" + title_name_en);

    } catch (Exception e) {

    e.printStackTrace();

    5运行main进行测试,查看打印结果

    打印结果和xls里面的值是一样的,说明读取excel成功

    请大家多多关注我的头条号,谢谢大家

  • ?

    浅谈我们在处理Excel的数据原则, 其实学习并没有你想的那么难

    Tia

    展开

    Excel VBA处理重复数据的方法

    写在前面:

    Excel-VBA中处我们在处理Excel数据时,很多时候都可以分为三个步骤,读取整理数据、计算构造输出数据、输出结果。

    前者和后者会和Excel工作表交换处理数据,而中间的那个步骤则是在计算机内存中处理完成。

    我们知道原数据的结构决定了算法,也就是说第一步的读取整理数据决定了中间的计算和后面的输出的代码难易度。 所以我们在设计源数据的时候,应该注意源数据的结构是否合理.

    PS:这里我想说一下良好的编程习惯应该具有以下两点:

    a.遵循一定的变量命名规则。每个人都会有自己的命名习惯,但我想说的是让这种习惯遵循一定的规则,并尽可能的让它表达自身的含义。

    b.编写代码尽量写成一个模块,拎出来单独写个过程或是函数,其好处不仅仅是避免重复的代码,更大的好处是让你可以更为专注的解决一个相对独立的功能而不用去考虑全局的情况

    给这个过程起一个恰当的名字,同样会让你的代码更容易看懂,让你的代码会说话。

    今天和大家聊聊在Excel中如何使用VBA处理重复的数据的几种方法.

    Excel数据处理的过程中,我们常常会遇到某个表格存在重复数据。但是在大多时候,我们常常需要这些重复数据进行处理,得到我们所需要的数据。

    我们还来举一个例子,下图的数据我们其实非常常见,具体如下图所示

    那么我们的问题就来啦!请看题:

    假设我们要计算在职人员的所在的部门数量,我们应该怎么计算呢?同时还需要计算各部门的的人数分别是多少人?下面我们一步一步来实现。

    按照前言所说,我们分析以上的数据发现,这个源数据的结果单一,数据十分规范,有规律.

    我们处理数据首先就是读取数据,读取数据也就是我们常说的将Exce写入到计算机内存,在这个位置我们就想到的利用数组,将源数据区域写入内存.

    我们选择合适方法,进行数据处理.我们想到的是利用字典的关键词数据不重复性,完成数据处理.

    最后就是输出我们结果,也就是我们将处理过的数据,重新写入到表格中.

    至此我们处理数据的三部曲是不是得到完整的体现.我们现在来看看具体的操作过程.

    PS:我们主要利用字典,利用字典key不重复的特性,我们将省份存入字典中

    我们看看执行后的结果:

    黄色高亮区域即为我们利用字典的特性,将部门加入我们的字典当中,然后对重复的部门进行项的累加,从而达到计算重复的个数.当然我们也可以计算部门的工资的总额.

    附上代码:

    Sub test()

    字典前期绑定写法

    Dim d As New Dictionary

    Dim arr, i&

    清除H和I列的值

    [h:i].ClearContents

    将数据的单元格区域直接赋值给数组arr

    arr = Range("a2:f15")

    利用循环将字典特性,将部门的关键词写入到字典中,然后对他的项进行累加计算.

    For i = 1 To UBound(arr)

    这句话的意思就是,如果字典不存在这个部门的关键词,则将这个关键词写入到字典中.如果字典中已经存在这个关键词的话,则对他的项进行累加计算.也就是我们老生常谈的K=K+1.

    d(arr(i, 2)) = d(arr(i, 2)) + 1

    Next

    写入标题

    [h1].Resize(1, 2) = Array("部门", "人数")

    在H列赋值我们字典中的所有关键词

    [h2].Resize(d.Count) = Application.Transpose(d.Keys)

    在H列赋值我们字典中的所有项

    [i2].Resize(d.Count) = Application.Transpose(d.Items)

    End Sub

    写在结尾:

    看了上面,你是不是发现利用字典和数组处理数据的重复计算,是不是如此简单!

    其实我们学习Excel VBA没有那么难,他只能是算是解释型编程语言。所以如果你还是在是否学习犹豫不前,请不用担心,大步向前走吧!

    PS:学习的苦难需要我们主动面对,生活的苦难你躺着它自己主动就过来啦!与君共勉之!!!

    以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!

    唯有不断学习,才能不被淘汰!

    Excel中每一个方法都有特定的用途,不是他们没有用处,只是你不了解或者暂时用不着,建议你收藏起来,万一哪天用着呢?

  • ?

    phpexcel导入excel处理大数据

    应怜梦

    展开

    phpexcel导入excel处理大数据

    先下载对应phpExcel 的包就行了https://github/PHPOffice/PHPExcel

    下载完成 把那个Classes 这个文件夹里面的 文件跟文件夹拿出来就好了。

    直接写到PHPExcel 这个文件里面的。调用很简单。引入phpExcel 这个类传递对应的excel 文件的路径就好了

    现在上传到指定的目录,然后加载上传的excel文件读取这里读取是的时候不转换数组了。注意:是Sheet可以多个读取,php上传值要设置大,上传超时要设置长。

  • ?

    技巧 | 如何在Excel中巧妙的提取你需要的数据?

    断秋

    展开

    Hi,大家好,我是胖斯基

    又是一个突如其来的周三傍晚,风雨交夹,狂风相随……

    想想那许久未更新的公众号,再摸摸那胸前的一整块腹肌,愧色依旧,还是码字减肥吧!

    如何在Excel中巧妙的提取你需要的数据?

    举个例子:

    由于从财务系统导出的数据中,会计科目是一种全级显示,用””来展示层级的划分,但是实际在数据统计或应用的时候,需要用到末级科目,故:如何在批量数据中,快速提取末级科目的名称?

    也许猴急如你,一上来就想着函数或VBA,可行是可行,但是这种霸王硬上弓的模式,往往因用力过猛而不能快速得到预期效果……

    聪明人,应该懂得循序渐进!

    1

    查找替换法

    曾经有那么一个快捷键,它可以在茫茫人海中帮你寻觅“对象”,活好话不多,Ta就是Ctrl+F。

    如果你想起了Ta,那这个问题便迎刃而解,效果如下:

    注意这里查找的时候,用到的查询内容是 【*\】,查找内容替换为空,过程进度的处理基本上是秒级。

    说明:由于要获取的是末级科目名称,故希望在科目信息中,保留的内容是最后一个【\】后面的内容,所以这里查找的时候采用了通配符【*】,组合起来就是【*\】,故:凡是最后一个【\】前的内容都查询出来,并替换为空

    想想,这种温柔的方式,是不是比直接上函数和VBA的来的更和谐?

    2

    快速填充法

    当然条条大路通罗马,何必单恋一种法?

    曾经也有那么一个智能填充工具,Ta有那么一点人工智能的特效,能够想你所想,取你所需……

    Ta就是在Excel2013版及之后推出的一个快速填充工具(Ctrl+E)。如果你想起Ta,那基本也就是万花丛中笑春风般的效果,如下:

    注意:这里手工输入了2条记录(目的在于给Excel更多判断的选择),然后手工拖拽,选择快速填充后,所有末级科目数据自动呈现出来,怎么样?处理进度上是不是也是秒级?

    So,循序渐进是不是很重要?

    慢慢来,你会发现不一样的精彩

    3

    函数法

    这种方法呢不是特别提倡,毕竟不是人人都能上手就来函数,当然,你要是Excel大神,无妨,怎么开心怎么来。

    函数1:=TRIM(RIGHT(SUBSTITUTE(B3,"",REPT(" ",200)),200))

    函数2:=MID(B3,COUNT(,FIND("",B3,ROW($1:$99))),20)

    函数3:=VLOOKUP("*",RIGHT(B3,ROW($3:$24)-{0,1}),2,)

    具体函数逻辑就不在重复累赘说明了

    胖斯基|说

    在Excel中提取有效的数据,是一项频率极高的操作,其处理逻辑基本都已成为套路,学会灵活应用就好。

    当然,依旧要敲黑板说明的是:观察Ta,循序渐进,温柔对待,也许灵巧的技巧,能解决你很大的问题……

    更多精彩,敬请关注Excel老斯基

  • ?

    EXCEL数据分析师常用操作技巧

    祁婴

    展开

    快捷键

    Excel的快捷键很多,以下主要是能提高效率。

    Ctrl+方向键,对单元格光标快速移动,移动到数据边缘(空格位置)。

    Ctrl+Shift+方向键,对单元格快读框选,选择到数据边缘(空格位置)。

    Ctrl+空格键,选定整列。

    Shift+空格键,选定整行。

    Ctrl+A,选择整张表。

    Alt+Enter,换行。

    Ctrl+Enter,以当前单元格为始,往下填充数据和函数。

    Ctrl+S,快读保存。

    Ctrl+Z,撤回当前操作。

    如果是效率达人,可以学习更多快捷键。Mac用户的Ctrl一般需要用command替换。

    格式转换

    Excel的格式及转换很容易忽略,但格式会如影随形伴随数据分析者的一切场景。

    通常我们将Excel格式分为数值、文本、时间。

    数值常见整数型 Int和小数/浮点型 Float。两者的界限很模糊。

    文本分为中文和英文,存储字节,字符长度不同。

    时间格式在Excel中可以和数值直接互换,也能用加减法进行天数换算。

    时间格式有不同表达。例如2016年11月11日,2016/11/11,2016-11-11等。当数据源多就会变得混乱。我们可以用自定义格式规范时间。

    数组

    数组很多人都不会用到,甚至不知道有这个功能。。

    数组由多个元素组成。普通函数的计算结果是一个值,数组类函数的计算结果返回多个值。

    数组用大括号表示,当函数中使用到数组,应该用Ctrl+Shift+Enter输入,不然会报错。

    先看数组的最基础使用。选择A1

    1区域,输入={1,2,3,4}。记住是大括号。然后Ctrl+Shift+Enter。我们发现数组里的四个值被分别传到四个单元格中,这是数组的独有用法。

    我们再来看一下数组和函数的应用。利用{},我们能做到1匹配a,2匹配b,3匹配c。也就是一一对应。专业说法是Mapping。

    =lookup(查找值,{1,2,3},{"a","b","c"})

    分列

    Excel可以将多个单元格的内容合并,但是不擅长拆分。分列功能可以将某一列按照特定规则拆分。常常用来进行数据清洗。

    上文我有一列地区的数据,我想要将市和区分成两列。我们可以用mid和find函数查找市截取字符。但最快的做法就是用“市”分列。

    合并单元个格

    单元格作为报表整理使用,除非是最终输出格式,例如打印。否则不要随意合并单元格。

    一旦使用合并单元格,绝大多数函数都不能正常使用,影响批量的数据处理和格式转换。合并单元格也会造成Python和SQL的读取错误。

    数据透视表

    数据透视表的主要功能是将数据聚合,按照各子段进行sum( ),count( )的运算。

    下图我选择想要计算的数据,然后点击创建透视表。

    此时会新建一个Sheet,这是数据透视表的优点,将原始数据和汇总计算数据分离。

    数据透视表的核心思想是聚合运算,将字段名相同的数据聚合起来,所谓数以类分。

    列和行的设置,则是按不同轴向展现数据。简单说,你想要什么结构的报表,就用什么样的拖拽方式。

    删除重复项

    一种数据清洗和检验的快速方式。想要验证某一列有多少个唯一值,或者数据清洗,都可以使用。

    条件格式

    条件格式可以当作数据可视化的应用。如果我们要使用函数在大量数据中找出前三的值,可能会用到rank( )函数,排序,然后过滤出1,2,3。

    用条件格式则是另外一种快速方法,直接用颜色标出,非常直观。

    冻结首行首列

    Excel的首行一般是各字段名Header,俗称表头,当行数和列数过多的时候,观察数据比较麻烦。我们可以通过固定住首行,方便浏览和操作。

    Header是一个较为重要的概念。在Python和R中,read_csv函数,会有一个专门的参数header=true,来判断是否读取表头作为columns的名字。

    自定义下拉菜单(数据有效性)

    数据有效性是一种约束,针对单元格限制其输入,也就是让其只能固定几个值。下拉菜单是一种高阶应用,通过允许下拉箭头即可。

    自定义名称

    自定义名称是一个很好用的技巧,我们可以为一个区域,变量、或者数组定义一个名称。后续要经常使用的话,直接引用即可,无需再次定位。这是复用的概念。

    我们将A1:A3区域命名为NUM

    直接使用=sum(NUM) ,等价于sum(A1:A3)。

    查找公式错误

    公式报错也不知道错在哪里的时候可以使用,尤其是各类IF嵌套或者多表关联,逻辑复杂时。查找公式错误是逐步运算的,方便定位。

    分组和分级显示

    分组和分级显示,常用在报表中,在报表行数多到一定程度时,通过分组达到快速切换和隐藏的目的。越是专业度的报表(咨询、财务等),越可以学习这块。在数据菜单下。

    分析工具库

    分析工具库是高阶分析的利器,包含很多统计计算,检验功能等工具。Excel是默认不安装的,要安装需要加载项,在工具菜单下(不同版本安装方式会有一点小差异)。

    分析工具库是统计包,规划求解是计算最优解,类似决策树。

    内容来源:网络整理

    百家号-【袁帅数据分析运营】运营者:袁帅,互联网数据分析运营实践者。会展业信息化、数字化领域专家。认证数据分析师、网络营销师、SEM搜索引擎营销师、SEO工程师、电子商务职业经理人。

  • ?

    如何用PHP读取excel文件内容、获取单元格数据

    羞答答

    展开

    涉及相关知识点:

    ①PHPExcel是用来操作Office Excel 文档的一个PHP类库,它基于微软的Openxml标准和PHP语言。可以使用它来读取、写入不同格式的电子表格。

    ②time() 返回当前时间的秒数的函数,用来获取当前的系统时间

    ③require_once 为了避免重复加载文件即加载文件一次

    ④array()创建数组

    ⑤memory_get_usage()php内置函数能返回当前分配给PHP脚本的内存量,使用它来调试PHP代码性能

    ⑥var_dump() 用来打印数组,或者输出字符串

    php读取excel文件,并进行相应处理的具体方法

    代码示例如下:

    /*读取excel文件,并进行相应处理*/

    $fileName = "url.xls";

    if (!file_exists($fileName)) {

    exit("文件".$fileName."不存在");

    }

    $startTime = time(); //返回当前时间的Unix 时间戳

    require_once './PHPExcel/IOFactory.php';

    $objPHPExcel = PHPExcel_IOFactory::load($fileName);

    //获取sheet表格数目

    $sheetCount = $objPHPExcel->getSheetCount();

    //默认选中sheet0表

    $sheetSelected = 0;$objPHPExcel->setActiveSheetIndex($sheetSelected);

    //获取表格行数

    $rowCount = $objPHPExcel->getActiveSheet()->getHighestRow();

    //获取表格列数

    $columnCount = $objPHPExcel->getActiveSheet()->getHighestColumn();

    echo "

    Sheet Count : ".$sheetCount." 行数: ".$rowCount." 列数:".$columnCount."

    ";

    $dataArr = array();

    /* 循环读取每个单元格的数据 */

    //行数循环

    for ($row = 1; $row <= $rowCount; $row++){

    //列数循环 , 列数是以A列开始

    for ($column = 'A'; $column <= $columnCount; $column++) {

    $dataArr[] = $objPHPExcel->getActiveSheet()->getCell($column.$row)->getValue();

    echo $column.$row.":".$objPHPExcel->getActiveSheet()->getCell($column.$row)->getValue()."
    ";

    }

    echo "
    消耗的内存为:".(memory_get_peak_usage(true) / 1024 / 1024)."M";

    $endTime = time();

    echo "

    解析完后,当前的时间为:".date("Y-m-d H:i:s")."

    总共消耗的时间为:".(($endTime - $startTime))."秒

    ";

    var_dump($dataArr);

    $dataArr = NULL;}

  • ?

    利用PHPExcel读取Excel的数据和导出数据到Excel

    佟梦岚

    展开

    PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。

    PHPExcel使用教程:

    首先下载PHPExcel

    到https://github/PHPOffice/PHPExcel下载PHPExcel,如果不懂得使用git,可以到这https://codeload.github/PHPOffice/PHPExcel/zip/1.8下载压缩包,懂得的自行用git下载。

    下载好文件,解压可以得到如下文件:

    PHPExcel

    好了,现在我们就可以用PHPExcel愉快的读取和制作表格了!

    PHPExcelDEMO1:利用PHPExcel读取excel信息:

    我们在根目录创建一个名为read.php的文件来读取文档,创建一个test.xlsx的文件,里面写的信息如下:

    然后在read.php写以下代码:

    $inputFileName=‘./test.xls’;date_default_timezone_set(‘PRC’);//读取excel文件try{$inputFileType=PHPExcel_IOFactory::identify($inputFileName);$objReader=PHPExcel_IOFactory::createReader($inputFileType);$objPHPExcel=$objReader->load($inputFileName);}catch(Exception$e){die(‘加载文件发生错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”:‘.$e->getMessage);//确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧$sheet=$objPHPExcel->getSheet(0);$highestRow=$sheet->getHighestRow;$highestColumn=$sheet->getHighestColumn;//获取一行的数据for($row=1;$row//Readarowofdataintoanarray$rowData=$sheet->rangeToArray(‘A’.$row.‘:’.$highestColumn.$row,NULL,TRUE,FALSE);//这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果var_dump($rowData);echo“”;

    得到的数据:

    PHPexcel读取文件

    PHPExcelDEMO2:利用PHPExcel导出信息到excel:

    getProperties->setCreator("作者简庆旺")->setLastModifiedBy("最后更改者")->setTitle("文档标题")->setSubject("文档主题")->setDescription("文档的描述信息")->setKeywords("设置文档关键词")->setCategory("设置文档的分类");//根据excel坐标,添加数据$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','你好')->setCellValue('B2','世界')->setCellValue('C1','你好')->setCellValue('D2','世界');//混杂各种符号,编码为UTF-8$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A4','Miscellaneousglyphs')->setCellValue('A5','éàèùêüü');$objPHPExcel->getActiveSheet->setCellValue('A8',"你好世界");$objPHPExcel->getActiveSheet->getRowDimension(8)->setRowHeight(-1);$objPHPExcel->getActiveSheet->getStyle('A8')->getAlignment->setWrapText(true);$value="-ValueA\n-ValueB\n-ValueC";$objPHPExcel->getActiveSheet->setCellValue('A10',$value);$objPHPExcel->getActiveSheet->getRowDimension(10)->setRowHeight(-1);$objPHPExcel->getActiveSheet->getStyle('A10')->getAlignment->setWrapText(true);$objPHPExcel->getActiveSheet->getStyle('A10')->setQuotePrefix(true);//重命名工作sheet$objPHPExcel->getActiveSheet->setTitle('第一个sheet');//设置第一个sheet为工作的sheet$objPHPExcel->setActiveSheetIndex(0);//保存Excel2007格式文件,保存路径为当前路径,名字为export.xlsx$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');$objWriter->save('export.xlsx');//保存Excel95格式文件,,保存路径为当前路径,$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');$objWriter->save('export.xls');

    好了,执行后我们可以得到export.xls和export.xlsx,如果使用过程遇到问题,可以联系本博客答疑。

  • ?

    python初学之xlrd读取excel

    邱昊焱

    展开

            最近工作有个需求,把一个几十万的excel表格分开为若干小表格,每个表格5000条数据。手动分开的话浪费大量的时间,而且以后还有可能有类似需求。正好前段时间学习了下python的基础语法,打算用python写个小工具代替手动操作。

            经过各种百度,发现python操作excel还是比较简单的。现在记录如下,本文章只适合python小白阅读,大神们请绕道。

           

    开发工具PyCharm镇楼

    工作数据涉及机密,从网上随便下了个成语的excel文件

    首先安装xlrd,我的已经安装好了,所以提示是这样的。

    读取E盘下的chengxu.xlsx文件,并打印下第一个sheet页的行数。还是很简单的

    正式开始读取excel,打印第一行表头,和第二行的正式数据

    1万多条数据作死打印下,效率还行。学会读取了,下一步该excel就可以随意玩了。

  • ?

    PHPexcel读取excel数据

    替代者

    展开

    PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。这里分享下读取数据的过程

    1. 下载PHPexcel, 我这里下载的PHPExcel-1.8

    2. 将下载的文件解压缩拷贝到项目目录中,如图:

    3. 准备好要读取的excel文件,如图:

    4. 加载PHPexcel文件并读取数据:

    5. 读取结果如下:

  • ?

    R学习笔记系列—R语言从文本和Excel文件中读取数据

    吴萧

    展开

    1.4.1 从文本文件中导入数据

    可以使用 read.table() 函数从带分隔符的文本文件中导入数。调用格式为:

    这个函数看上去很复杂,但其实很多参数在使用时不用明确指出来,使用默认值可以满足绝大部分情况,因此实际使用还是比较简单的,下面我们简单介绍一下参数含义。

    file: 字符型,文件名称,要从中读取文件的完整路径。

    header: 逻辑型,指定是否在首行包含变量名,默认为 FALSE。

    sep: 字符型,分割字符,默认为"",代表空白字符,包括空格(一个或多个)、制表符、 换行符、回车

    dec: 字符型,指定小数点字符,默认为".",一般不用修改。

    numerals: 字符型,在数字转换会损失精度时的处理方法,allow.loss 表示允许精度损失;warn.loss 允许精度损失,但显示一条警告信息;no.loss 不允许精度损失,即转换为数字,而是转换为因子或者不转换,保留字符串形式。

    row.names 字符向量,为行指定名称。

    col.names 字符向量,为列指定名称,若列名在第一行定义好了,可不用。

    stringAsFactors: 逻辑型,是否将字符串自动编码为因子,默认为 TRUE。

    na.strings: 字符向量,定义代表缺失值的字符串,比如c("N",".")会将 "N" 和"." 两个字符读取为缺失值,默认为 "NA"。

    colClasses: 字符向量为列指定类型,比如c("numeric","character")指定第一列为数值型,第二列为字符型,若将某列指定为字符串,则不会将其自动编码为因子。

    nrows: 数值型,读取的最大行数,负数为不限制。

    skip: 数值型,读取前跳过的行数。

    check.names: 逻辑型,是否检查变量名在 R 中的有效性,默认为 TRUE。

    fill: 逻辑型,是否自动填充空白值,若各变量行数不一致,是否为空白列添加空白值。

    strip.white: 逻辑型,是否自动过滤掉字符型变量前后的空格。

    comment.char: 字符型,注释字符,以此字符开头的行将被忽略。

    blank.lines.skip 逻辑型,是否忽略空白行,默认为 TRUE。

    allowEscapes: 逻辑型,是否处理 C 语言风格的转意符。

    text: 字符型,直接指定要读取的字符串,此时 file 应该为空。

    encoding: 字符型,输入文本的编码,若出现乱码,请尝试更改此选项。

    fileEncoding: 字符型,文件编码,若出现乱码,请尝试更改此选项。

    假定我们有一个文本文件,students.txt,记录了6个学生的性别、身高和体重情况,其内容如下:

    那么我们可以用以下方式读取:

    read.table() 是读取按行列组织的数据的基础方式,其它同类函数,比如 read.csv() 等其实是用特定的选项调用了 read.table() 函数。在 read.table() 函数时,应尽量注意以下几点。

    1.建议明确地在首行定义变量名,并加上参数 header = TRUE。

    2.默认的分隔符为"",可以用空格、制表符、换行符等空白字符分割内容,若非空白分割,则需明确指出。

    3.字符型变量会被自动转换为因子型,在读大型文件时,将 stringsAsFactors 设置为 False,能加快读取速度。

    4.默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。

    5.read.table()会尽量为每个变量选择合适的数据类型,若你想明确指定请用colClasses,或者生成后根据需要修改。

    6.若读中文时出现乱码,请尝试改变编码

    1.4.2 从 Excel 表格中读取

    从 Excel 里读取数据最简单的办法就是将 Excel 表格存储为以逗号分割的 csv 文件,然后用 read.csv() 函数读取。read.csv() 函数其实就是 read.table() 的定制版,其用法与 read.table() 基本一致。

    若要直接读取 Excel 文件,则需安装专门的包,本书推荐 readxl 包。

    readxl 中有若干读取 Excel 数据的函数,最常用的是 read.excel()。调用格式为:

    path: 字符型,文件路径sheet: 字符型或数值型。若为字符型,则指定 Sheet 名;若为数值,则指定 Sheet 的位置;若不指定,默认第一个Sheetrange: 字符型或数值型,读取的单元格范围,比较复杂,请查看文档col_names: 逻辑型或字符型向量;若为逻辑型,则指定是否将第一行作为变量名;若为字符向量,则直接定义各列名col_types: 字符型向量,定义各列数据类型,比如c("numeric","character");若不指定,则自动匹配na: 字符型向量,指定读取为缺失值的字符串 ,默认情况下,会将空单元格读取为缺失值trim_ws: 逻辑型,是否自动过滤掉字符型变量前后的空白(空格、制表符、换行符skip: 数值型,读取前跳过的行数,因为空白的行会自动跳过,所以这是最小的被跳过的行数n_max: 数值型,最大读取行数guess_max: 数值型,猜测列类别时,检测的最大行数

    假如,在 d 盘有一名为 students.xls 的 Excel 文件,你可以通过如下方式读取。

    喜欢闲适安静的生活,懂一点计算机编程,懂一点统计学和数据分析。(爱编程爱统计)

读取excel数据

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP