精华内容
下载资源
问答
  • 本书内容丰富、图文并茂、操作性强且便于查阅,主要面向Excel中高级读者,能有效地帮助读者提高Excel数据处理与分析的水平,提升工作效率。 详细目录 绪论 最佳Excel学习方法 01 成为Excel高手的捷径 02 ...
  • 微信公众号:python爬虫实战之路关注了解更多的python爬虫实战项目。问题或建议,请公众号...sheet: 每一个workbook中可以包含多个sheet,具体就对应Excel中我们左下脚所看到的“sheet1”,“sheet2”等。cell...
    微信公众号:python爬虫实战之路
    关注可了解更多的python爬虫实战项目。问题或建议,请公众号留言

    Excel数据的类型及组织方式

    每一个Excel数据文件从上至下分为三个层级的对象:workbook: 每一个Excel文件就是一个workbook。sheet: 每一个workbook中可以包含多个sheet,具体就对应Excel中我们在左下脚所看到的“sheet1”,“sheet2”等。cell: 每一个sheet就是我们通常所看到的一个表格,可以含有m行,n列,每个确定的行号,列号所对应的一个格子就是一个cell。

    Excel模块对比

    平台:Mac
    工具:PyCharm
    Python:python3.6
    Excel行数:64543

    openpyxlxlrd&xlwtxlsxwriter读取9.406903028488165.220927000045776不支持读写8.9095242023468026.5021541118621839.416481733322144类型xlsxxlsx、xls(写)xlsx格式可读取xlsx不支持X

    从一个既有的xlsx文件中读取数据,按照Excel文件的三个层级,分别来看一下以上三个库的操作方式。

    xlrd & xlwt & xlutils

    xlrd负责读取Excel文件,支持xls、xlsx
    xlwt负责写入Excel文件,只支持xls格式。对于现在已经Office2019了,还只支持2003版的格式难怪会被人抛弃。
    xlutils是一个工具模块,我们一般只用到copy模块,用于修改已存在的Excel文件

    open_workbook

    param: encoding_override 读取Excel文件时默认使用ASCII编码。此处可指定编码。param: formatting_info
    设置是否保存Excel格式,比如加粗。一般只对简单的格式起作用,而且xlsx格式文件不支持。
    这可以节省内存。在这种情况下,通过忽略文件BLANK和MULBLANK记录,“空白”单元格(它们具有自己的格式信息但没有数据)会被视为空白

    param: on_demand
    按需加载工作表。默认加载False,加载所有的工作表。设置True时,调用book.sheet_by_name或book.sheet_by_index才会加载工作表。book.sheets加载所有工作表。book.sheet_loaded判断表单是否已加载。book.unload_sheet卸载已加载表单。

    1. 打开workbook:
      import xlrd
      book = xlrd.open_workbook("myfile.xls") #book就赋值为一个Excel文件了
      注:
      Book 类的方法、属性等:即就可以对上面的book进行操作了
      book.nsheets: 在Book对象中的文件有多少个worksheet。
      book.sheet_by_index(sheetx): 根据提供的sheetx索引来获取我们需要的sheet表,返回的是一个Sheet类的实例。
      book.sheet_by_name(sheet_name): 根据提供的sheet_name来获取对应名称的sheet类对象,返回的也是一个Sheet类的对象。
      book.sheet_names(): 在Book对象中的所有sheet表的名称列表。
      book.sheets(): 返回在Book对象中所有的Sheet对象实例列表。
    2. 打开所需的sheet:
      sheet = book.sheet_by_index(0) #获得一个sheet,也可以使名字获得
      print sheet.name, sheet.nrows, sheet.ncols
      注:
      Sheet类方法、属性等:
      sheet.cell(rowx, colx): 根据给出的行和列的参数获取得到cell类,返回一个Cell类实例对象。
      sheet.cell_type(rowx, colx): 返回对应的cell对象的Type类型。
      sheet.cell_value(rowx, colx): 返回对应的cell对象的value值。
      sheet.col(colx): 返回指定列的所有cell类对象序列。
      sheet.name: 返回sheet对象的名称。
      sheet.ncols: 返回在sheet对象中的列的数目。
      sheet.nrows: 返回在sheet对象中的行的数目。
      sheet.row(rowx): 返回指定的行的所有cell对象的序列。
      sheet.row_values(rowx, start_colx=0, end_colx=None):获取行内容。
      sheet.col_values(colx, start_rowx=0, end_rowx=None):获取列内容。
    3. 获取对应cell的值:
      cell=sheet.cell(rowx=29, colx=3) #根据给出的行和列的参数获取得到cell类,返回一个Cell类实例对象.
      sh.cell_value(rowx=29, colx=3)
      注:
      Cell类的属性、方法如下:
      Cell类对象有3种属性:ctype, value, xf_index
      如果在excel文件打开的时候,formatting_info未启用的时候,xf_index是为None
      下面列出了cell的类型,以及他们在python中所代表的值
      type symbol type number python value
      XL_CELL_EMPTY 0 空的字符串''
      XL_CELL_TEXT 1 unicode字符串
      XL_CELL_NUMBER 2 float
      XL_CELL_DATE 3 float
      XL_CELL_BOOLEAN 4 int;1 --- True,0 --- False
      XL_CELL_ERROR 5 int代表是一个excel内部错误码;
      XL_CELL_BLANK 6 空的字符串'', 注意:这个类型仅仅会出现,当函数open_workbook(..,formatting_info=True)这样设置的时候。

    Excel单元格内容存在不同的格式,可使用cell.ctype获取类型判断。ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
    日期类型可以使用xldate_as_tuple模块处理:

    value = sheet.cell_value(row, col)
    if sheet.cell(row, col).ctype == 3:
        date_value = xlrd.xldate_as_tuple(value, book.datemode) #输出元组 (2018, 2, 23, 0, 0, 0)
    

    openpyxl

    openpyxl支持可读可写操作,不支持xls文件的读写

    . 一个简单创建例子

    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    ws['A1'] = 42
    ws.append([1, 2, 3])
    import datetime
    ws['A3'] = datetime.datetime.now().strftime("%Y-%m-%d")
    wb.save("sample.xlsx")
    

    通过openpyxl.workbook.Workbook.active()得到worksheet.ws = wb.active 注意:
    该方法使用_active_sheet_index属性, 默认会设置0,也就是第一个worksheet。除非手动修改,否则使用active方法得到都是第一个worksheet。
    你也可以创建worksheets,通过 openpyxl.workbook.Workbook.create_sheet() 方法:ws1 = wb.create_sheet("Mysheet") #插入到最后(default)
    ws2 = wb.create_sheet("Mysheet", 0) #插入到最开始的位置

    创建的sheet的名称会自动创建,按照sheet,sheet1,sheet2自动增长,通过title属性可以修改其名称。
    ws.title = "New Title"

    默认的sheet的tab是白色的,可以通过 RRGGBB颜色来修改sheet_properties.tabColor属性从而修改sheet tab按钮的颜色:ws.sheet_properties.tabColor = "1072BA"
    当你设置了sheet的名称,可以将其看成workbook中的一个key。

    工作表有两种获取方式ws3 = wb["New Title"] --推荐ws4 = wb.get_sheet_by_name("New Title")

    查看workbook中的所有worksheets名称:book.sheetnames
    遍历worksheets:

    for sheet in book:
        print sheet.title
    

    . 操作数据

    单元格可以看作是worksheet的key,通过key去访问和设置单元格中的数据
    value = ws["A4"]
    ws["A4"] = data注意:

    1. 当worksheet在内存中被创建时,是没有包含cells的,cells是在首次访问时创建.
    2. 可以循环在内存中创建cells,这时不指定他们的值也会创建该cells些:(创建100x100cells)
    for i in range(1,101):
        for j in range(1,101):
            ws.cell(row=i, column=j)
    

    通过切片Ranges指定许多cells
    cell_range = ws['A1': 'C2']
    同样也可以Ranges行或者列:
    colC = ws['C']
    col_range = ws['C:D']
    rwo10 = ws[10]
    rwo_range = ws[5:10]

    也可以使用 openpyxl.worksheet.Worksheet.iter_rows() 方法:(需要指定行->行,截止列)

    for row in ws.iter_rows(min_col=1, min_row=1, max_col=3, max_row=2):
        for cell in row:
            print cell.value
    

    如果你需要遍历所有文件的行或列,可以使用openpyxl.worksheet.Worksheet.rows() 属性:tuple(ws.rows)或者 openpyxl.worksheet.Worksheet.columns() 属性:tuple(ws.columns)

    最简单最安全的方法保存workbook是使用openpyxl.workbook.Workbook对象的 openpyxl.workbook.Workbook.save()方法:
    wb = Workbook()
    wb.save('balances.xlsx')

    保存的默认位置在python的根目录下。
    注意:会自动覆盖已经存在文件名的文件。
    我们可以导入一个文件进行读或者写,像写一样我们可以导入openpyxl.load_workbook()已经存在的workbook:

    from openpyxl import load_workbook
    wb2 = load_workbook('test.xlsx')
    print wb2.get_sheet_names()
    

    append函数

    可以一次添加多行数据,从第一行空白行开始(下面都是空白行)写入
    如果需要整列进行添加数据:

    lst = ["test1", "teset2", "test3", "test4"]
    for row in range(1, 40):
        ws1.append(lst)
    # 添加多行 
    rows = [ ['Number', 'data1', 'data2'], [2, 40, 30], [3, 40, 25], [4, 50, 30], [5, 30, 10], [6, 25, 5], [7, 50, 10]]
    map(ws1.append, rows)
    

    由于append函数只能按行写入。如果我们想按列写入呢?
    写入例子:

    # workbook相关
    from openpyxl import Workbook
    from openpyxl.compat import range
    from openpyxl.utils import get_column_letter
    wb = Workbook()
    dest_filename = 'empty_book.xlsx'  
    ws1 = wb.active
    ws1.title = "range names"  
    for row in range(1, 40):
        ws1.append(["test%s" % i for i in range(6)])
    ws2 = wb.create_sheet(title="Pi")
    ws2['F5'] = 3.14  
    ws3 = wb.create_sheet(title="Data")
    for row in range(10, 20):
        for col in range(27, 54):
            _ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))
    print(ws3['AA10'].value)
    wb.save(filename=dest_filename)
    

    使用公式

    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    
    # add a simple formula 
    for i in range(1, 20):
        ws.append([i * num for num in range(1, 4)])
    for i in range(1, 20):
        ws["D%s" % i] = "=SUM(A{0}, C{0})".format(i)
    wb.save("formula.xlsx")
    

    . 设置单元格风格--Style

    先导入需要的类from openpyxl.styles import Font, colors, Alignment
    分别可指定字体相关,颜色,和对齐方式。

    字体

    bold_itatic_24_font = Font(name='等线', size=24, italic=True, color=colors.RED, bold=True) 
    sheet['A1'].font = bold_itatic_24_font
    

    上面的代码指定了等线24号加粗斜体,字体颜色红色。直接使用cell的font属性,将Font对象赋值给它。

    对齐方式

    也是直接使用cell的属性aligment,这里指定垂直居中和水平居中。除了center,还可以使用right、left等等参数。

    # 设置B1中的数据垂直居中和水平居中 
    sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')
    

    设置行高和列宽

    有时候数据太长显示不完,就需要拉长拉高单元格。

    # 第2行行高 
    sheet.row_dimensions[2].height =  40  
    
    # C列列宽 
    sheet.column_dimensions['C'].width =  30
    

    合并和拆分单元格

    所谓合并单元格,即以合并区域的左上角的那个单元格为基准,覆盖其他单元格使之称为一个大的单元格。
    相反,拆分单元格后将这个大单元格的值返回到原来的左上角位置。

    # 合并单元格, 往左上角写入数据即可 
    sheet.merge_cells('B1:G1') # 合并一行中的几个单元格 
    sheet.merge_cells('A1:C3') # 合并一个矩形区域中的单元格
    

    合并后只可以往左上角写入数据,也就是区间中:左边的坐标。
    如果这些要合并的单元格都有数据,只会保留左上角的数据,其他则丢弃。换句话说若合并前不是在左上角写入数据,合并后单元格中不会有数据。

    以下是拆分单元格的代码。拆分后,值回到A1位置。sheet.unmerge_cells('A1:C3')

    xlsxwriter

    只支持写入,不支持读取,也不支持查询,不支持xls格式

    . Workbook类

    Workbook类定义:Workbook(filename[,options])
    该类可以实现创建一个XlsxWriterWorbook对象。Workbook类表示整个电子表格文件。

    • 参数filenameString类型)为创建的Excel文件存储路径;
    • 参数optionsDict类型)为可选的Workbook参数,作为初始化表格内容; 
      例如:{'strings_to_numbers' : True}表示使用worksheet.write()方法时激活字符串转换数字。

    add_Worksheet([sheetname])方法

    添加一个新的工作表,参数sheetname(String类型)为可选参数,默认为sheet1;比如说按照表单顺序该工作表为第五张,则默认名为sheet5。

    # -*- coding: utf-8 -*-  
    import xlsxwriter 
    workbook = xlsxwriter.Workbook('Demo2.xlsx') # 创建一个名为Dome2.xlsx的表格 
    worksheet1 = workbook.add_worksheet() # 添加第一个表单,默认为sheet1 
    worksheet2 = workbook.add_worksheet('Files') # 添加一个名为File的表单 
    worksheet3 = workbook.add_worksheet() # 添加一个表单,默认为sheet3 
    workbook.close()
    

    add_format([properties])方法

    在工作表中创建一个新的格式对象来格式化单元格。参数propertiesDict类型)为指定一个格式属性的字典。

    bold = workbook.add_format() 
    bold.set_bold() # 设置为加粗
    

    add_chart(options)方法

    在工作表中创建一个图表对象,内部通过insert_chart()方法来实现,参数options(dict类型)为图标指定一个字典属性。

    # 设置线条类型的图表对象
    chart = workbook.add_chart({'type' : 'line'}) 
    

    close()方法

    # 关闭工作表文件
    workbook.close() 
    

    . Worksheet类

    Worksheet代表了一个Excel工作表,是XlsxWriter模块操作Excel内容最核心的一个类,例如将数据写入到单元格或者工作表格式布局等。 Workbook对象通过add_worksheet()方法来创建。

    write(row, col, *args)方法

    其作用是将普通数据写入到工作表单元格。 
    参数row为行标,col为列标,坐标检索起始值为0; *args无名字参数为数据内容,可以是数字、公式、字符串或格式对象。 
    write方法已经作为其它更加具体数据类型方法的别名。如以下几种:

    • write_string(),写入字符串类型数据;
    • write_number(),写入数据类型数据;
    • write_blank(),写入空类型数据;
    • write_formula(),写入公式型数据;
    • write_datetime(),写入日期类型数据;
    • wrtie_boolean(),写入逻辑类型数据;
    • write_url(),写入超链接类型数据。
    import xlsxwriter 
    workbook = xlsxwriter.Workbook('Demo2.xlsx') # 创建一个名为Dome2.xlsx的表格 
    worksheet1 = workbook.add_worksheet() # 添加第一个表单,默认为sheet1 
    worksheet2 = workbook.add_worksheet('Files') # 添加一个名为File的表单 
    worksheet3 = workbook.add_worksheet() # 添加一个表单,默认为sheet3 
    worksheet1.write(0, 0, 'Hello') # write_string() 
    worksheet1.write(1, 0, 1.23) # write_number() 
    worksheet1.write(2, 0, '') # write_blank() 
    worksheet1.write(3, 0, None) # write_blank() 
    worksheet1.write(4, 0, '=SIN(PI()/4)') # write_formula() 
    workbook.close()
    

    set_row(row, height, cell_format, options)方法

    其作用是设置行单元格属性。 

    • rowint类型),指定行位置,起始下标为0; 
    • heightfloat类型),设置行高,单位为像素; 
    • cell_formatformat类型)指定格式对象; 
    • optionsdict类型)设置行hidden(隐藏)、level(组合分级)、collapsed(折叠)。
    import xlsxwriter 
    # 创建一个名为Dome2.xlsx的表格
    workbook = xlsxwriter.Workbook('Demo2.xlsx')  
    # 添加第一个表单,默认为sheet1 
    worksheet1 = workbook.add_worksheet() 
    # 在单元格A1写入‘Hello’字符串 
    worksheet1.write('A1', 'Hello') 
    # 定一个加粗的格式对象 
    cell_format = workbook.add_format({'bold': True}) 
    # 第一行单元格高度为40px,且引用加粗格式对象 
    worksheet1.set_row(1, None, None, {'hidden': True}) 
    # 隐藏第2行单元格 
    worksheet1.set_row(0, 40, cell_format) workbook.close()
    

    set_column(first_col, last_col, cell_format, options)方法

    同上一个方法类似,这个方法是用于设置一列或多列单元格属性。

    insert_image(row, col, image[,options])方法

    其作用是插入图片到指定单元格,支持PNGJPGBMP等图片格式 

    • row为行坐标,col为列坐标,坐标索引起始位置为0; 
    • imagestring类型)为图片路径; 
    • optionsdict类型)为可选参数,指定图片的位置、比例、链接url等信息。
    import xlsxwriter 
    workbook = xlsxwriter.Workbook('Demo2.xlsx') # 创建一个名为Dome2.xlsx的表格 
    worksheet1 = workbook.add_worksheet() # 添加第一个表单,默认为sheet1 
    worksheet1.insert_image(2, 2, 'blog.png') # 在第三行第三列插入一张图片 
    workbook.close()
    

    . 添加图表示例

    #!/usr/bin/python
    #coding: utf-8
    import xlsxwriter
    workbook = xlsxwriter.Workbook('chart.xlsx')
    worksheet = workbook.add_worksheet()
    #新建图标对象
    chart = workbook.add_chart({'type': 'column'})
    #向 excel 中写入数据,建立图标时要用到
    data = [
        [1, 2, 3, 4, 5],
        [2, 4, 6, 8, 10],
        [3, 6, 9, 12, 15],
    ]
    worksheet.write_column('A1', data[0])
    worksheet.write_column('B1', data[1])
    worksheet.write_column('C1', data[2])
    #向图表中添加数据,例如第一行为:将A1~A5的数据转化为图表
    chart.add_series({'values': '=Sheet1!$A$1:$A$5'})
    chart.add_series({'values': '=Sheet1!$B$1:$B$5'})
    chart.add_series({'values': '=Sheet1!$C$1:$C$5'})
    #将图标插入表单中
    worksheet.insert_chart('A7', chart)
    workbook.close()
    

    432195e269961e3dc8968b096f89b1f6.png

    如果你觉得我的文章还可以,可以关注我的微信公众号,查看更多实战文章:Python爬虫实战之路

    展开全文
  • JxlExcel的修改是比较特别的,它主要分为3步:   1.构造只读的 Excel 工作薄   Workbook w1 = Workbook.getWorkbook(new File(path));//path为文件所在路径   2.根据已创建Excel的工作簿创建新的...

    前面我们都是在用jxl创建Excel文件,这次我们介绍如何更新一个已经存在的工作薄。在Jxl中对Excel的修改是比较特别的,它主要分为3步:

     

    1.构造只读的 Excel 工作薄

     

    Workbook w1 = Workbook.getWorkbook(new File(path));//path为文件所在路径

     

    2.根据已创建Excel的工作簿创建新的可写入的工作簿

     

    WritableWorkbook wb = Workbook.createWorkbook(new File(path), w1); //w1为已创建的工作簿

     

    3. 在新的工作表写入或在原有的工作表中写入

        // 得到已存在的工作表

    WritableSheet sheet1 = wb.getSheet(0);
    // 修改原来的单元格数据
    WritableCell cell = new Label(0, 0, "在原有Sheet上修改");
    sheet1.addCell(cell);
    // 创建新的一页,sheet只能在工作簿中使用
    WritableSheet sheet = wb.createSheet("tt", 1);
    cell = new Label(0, 0, "JExcelApi支持数据格式");
    CellFormat cf = null;
    sheet.addCell(cell);
    cell = new Label(0, 1, "数据格式");
    sheet.addCell(cell);
    cell = new Label(1, 1, "浮点数");
    sheet.addCell(cell);
    cell = new Label(2, 1, "整数");
    sheet.addCell(cell);
    cell = new Label(3, 1, "布尔值");
    sheet.addCell(cell);
    cell = new Label(4, 1, "日期");
    sheet.addCell(cell);
    
    cell = new Label(0, 2, "数据实例");
    sheet.addCell(cell);
    // 生成保存浮点数的单元格,通过jxl.write.Number来实现jxl.write.WritableCell接口
    // Number构造函数三个参数是1.列号2.行号3.数据
    cell = new Number(1, 2, 99.99);
    sheet.addCell(cell);
    // 生成保存整数的单元格
    cell = new Number(2, 2, 99);
    sheet.addCell(cell);
    // 生成保存布尔值的单元格
    cell = new Boolean(3, 2, false);
    sheet.addCell(cell);
    // 生成保存日期的单元格,并为该时间设置输出格式
    Calendar cal = Calendar.getInstance();
    cal.set(2011, 11, 11, 11, 11, 11);
    Date d = cal.getTime();
    DateFormat df = new DateFormat("yyyy-MM-dd hh:mm:ss");// 为时间设置输出格式为:"yyyy-MM-dd hh:mm:ss"
    cf = new WritableCellFormat(df);
    cell = new DateTime(4, 2, d, cf);
    sheet.addCell(cell);
    
    // 将内容写到输出流中,然后关闭工作区,最后关闭输出流
    wb.write();
    wb.close();
    w1.close();

     

    上面红色的代码如果我换成如下代码:

    WritableWorkbook wb = Workbook.createWorkbook(new FileOutputStream(path), w1);

     则会出现下面的问题:


    希望有哪位知道的大侠帮忙解答一下,谢谢!附件中有该代码!

     

    展开全文
  • excel的使用

    2012-11-25 17:06:01
    存放数据格式为“x,y”的形式,首先在Excel中输入坐标值,将x坐标值放入A列,y坐标值放入到B列,然后利用“&”将A列和B列合并成C列,在C1中输入:=A1&","&B1;,此时C1中的数据形式就符合要求了,再用鼠标向下拖动...
  • 从零开始学Excel.VBA

    热门讨论 2014-03-11 09:08:45
    Excel VBA基础篇系统地讲解了Excel VBA开发环境,以及Excel VBA的数据类型、运算符、函数与过程等语法知识。Excel VBA对象模型篇针对性地详细讲解了Excel VBA常用的Application对象、Workbook工作簿、Worksheet...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到...
  • Excel新增工具集

    2011-12-20 09:30:27
    1、Word转Excel:把若干个Word文档的表合并到Excel工作簿的一个工作表用于对下属填写的报名表(登记表)的汇总统计。 2、Excel转Word:把Excel工作簿的某个工作表记录逐一拆分到对应的若干个Word文档中...
  • 全书分为7章,首先介绍图表制作经常使用的各种技巧,然后分别介绍交互式图表、高级图表、图表自动化和趣味图表的制作及使用技巧,最后介绍如何将图形应用到excel图表以及图表制作的误区等内容。 本书内容丰富...
  • 13.1.2 在Excel中“开发工具”选项卡 289 13.1.3 Visual Basic编辑器 289 13.1.4 Visual Basic工具 290 13.1.5 宏录制器 291 13.1.6 理解面向对象的代码 291 13.2 学习VBA编程技巧 291 13.2.1 编写代码...
  • 13.1.2 在Excel中“开发工具”选项卡 289 13.1.3 Visual Basic编辑器 289 13.1.4 Visual Basic工具 290 13.1.5 宏录制器 291 13.1.6 理解面向对象的代码 291 13.2 学习VBA编程技巧 291 13.2.1 编写代码...
  • 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    【批量导入图片】 将指定文件夹或包含子文件夹中所有图片瞬间(也可以按对应名称)按指定图片大小导入EXCEL中。允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以导入的...
  • 中文版Excel.2007图表宝典 2/2

    热门讨论 2012-04-06 19:01:36
    读者从中还可以学习如何图表修改数据、处理遗漏的数据、格式化图表、使用趋势线,以及从数据透视表创建图表等相关内容。除此之外,还可以学习如何通过AutoShapes,用图片和色彩修饰图表,以及利用VBA编程创建...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
    分享了自己15 年来使用Excel 的经验,毫无保留地传授了学习和使用Excel 的所有知识,为读者掌握Excel 提供了绝佳的途径。本书的前两个版本均已获得巨大成功,前两版的基础上,本书升华了已有的精华,并...
  • 今天录制的宏可能明天不起作用,也就是说,录制的宏可能能够处理包含14条记录的数据集,但无法处理包含12条或16条记录的数据集。这是宏录制器存在的常见问题,它们是导致众多Excel大师厌恶编写宏的罪魁祸首。  ...
  • Python数据挖掘简易入门

    千人学习 2020-03-11 14:47:29
    数据采集篇:学习如何解决数据挖掘的数据来源问题,读取各类型不同的数据包括CSV,excel,MySQL进行数据采集的交互。 数据探索篇:本篇主要解决数据的预处理保证数据的质量并用常见数据挖掘算法进行特征提取...
  • 【批量导入图片】 将指定文件夹或包含子文件夹中所有图片瞬间(也可以按对应名称)按指定图片大小导入EXCEL中。允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以导入的...
  • 原文来自 萌一小栈 数组,在数据结构中,是很基础,也很常用的一个,很多很多业务中,都能看到它的身影。数组很简单,不同的编程语言中,操作方式,也几乎都是类似的。...就像excel中的表格,一行数据,就...

    原文来自 萌一小栈

    数组,在数据结构中,是很基础,也很常用的一个,在很多很多业务中,都能看到它的身影。数组很简单,在不同的编程语言中,操作方式,也几乎都是类似的。

    那数组是什么呢?简单来说,就是在内存中分配一块连续的空间,用来存储相同类型的元素。使用索引,可以直接访问某一个元素的数据。大多数编程语言,数组的索引是从0开始的。

    数组也分为一维数组,和多维数组。就像excel中的表格,一行数据,就可以看做是一个一维数组,而多行数据,就可以看做是一个多维数组。

    这个是一维数组结构array1.png

    这个是多维数组结构array2.png

    关于性能方面,因为数组是固定大小,连续的内存结构,所以访问元素的速度是很快的,时间复杂度是O(1),也就是说,不用遍历,能直接找到要访问的元素,几乎不消耗什么时间。

    但是插入和删除某一个元素,就不一样了,假设一个数组有10个元素,删除了第4号元素,那么,4号后面的元素,都要往前移。而插入,也需要将插入位置后面的元素,往后移动。这是数组的一个弊端。

    当要插入一个元素,而原本分配的数组空间已经不够时,有些编程语言会产生数组溢出。这时,我们就需要自己写逻辑,当数组空间不足时,分配一个新的更大的数组,先将原来数组的元素复制进去,然后将新元素插入。就像你要将100个桃子放进一个盒子里,但是装着装着发现盒子不够大,这时,就需要找一个更大的盒子,将原来盒子里那些拿出来放到新盒子里,然后继续新盒子里放桃子。

    对于数组的操作,有很多,例如删除头部元素、删除尾部元素、在头部添加元素、在尾部添加元素、数组切片、多个数组链接等等。有一些编程语言已经内部实现了这些方法,例如Javascript,Python等,但有一些编程语言,我们就需要在用到时自己实现,例如C语言等。

    好了,数组就先介绍到这里,如果有什么问题,或者有解释不准确的地方,欢迎在下面留言,谢谢~



    为了方便小伙伴们在手机上阅读,我创建了一个公众号「 萌一小栈 」可以扫码关注噢~

    展开全文
  • 【批量导入图片】 将指定文件夹或包含子文件夹中所有图片瞬间(也可以按对应名称)按指定图片大小导入EXCEL中。允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以导入的...
  • 【批量导入图片】 将指定文件夹或包含子文件夹中所有图片瞬间(也可以按对应名称)按指定图片大小导入EXCEL中。允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以导入的...
  • 1. 背景与目的数据分析处理十万以内数据基础工具基于Excel,而针对十万以上超出数据库的数据需要使用SQL提取。2. 步骤 本篇为入门阶段介绍1) 什么是数据库数据库是“按照数据结构来组织、存储和管理数据的仓库...

    df18bd48652083166ec31518040555bf.png

    1. 背景与目的

    数据分析中处理十万以内数据基础工具基于Excel,而针对十万以上超出在数据库的数据需要使用SQL提取。

    2. 步骤

    6bd7f45c0267735074c467a169987204.png

     本篇为入门阶段介绍

    1) 什么是数据库

    数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

    相比Excel,数据库存放更多的数据。可多人同时访问 类似网盘

    数据库分为数据库共有3种类型,为关系数据库、非关系型数据库和键值数据库。最常见数据库为关系数据库

    关系数据库=多张表+各表之间的关系

    表的结构包含:列名+行名+表名

    主键:用来表示数据唯一性的列(如下:学号列)

    主键是关系数据库的重要概念 ,他代表了关系数据库的唯一性。

    各表之间关系通过唯一性主键数据列(主键)及联结join语句处理。

    如下举例:

    f947603d7f47bdb3e79cadeffe1e68a3.png

    什么是数据库管理系统(数据库管理人员)

    这是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库(关系数据库管理系统:mysql,oracle,sql server)

    什么是SQL

    用于操作(访问及处理)数据库里面数据的标准计算机语言

    SQL 分类

    7a71ff156cfb3565001d26516dbc92f3.png

    DDL(Data Definition Language,数据定义语言)

    DML(Data Manipulation Language,数据操纵语言)--90%以上

    DCL(Data Control Language,数据控制语言)--外加 ‘REVOKE: 取消用户的操作权限

    0a2f96ef6c1522869f2e7069420bcb05.png

    2)如何安装mysql数据库和可视化客户端navicat

    数据库安装分为俩部分:

    a) MySQL数据库(存放数据)

    b) 客户端Navicat (通过客户端,方便操作数据库)

    如何验证MySQL数据库安装成功?

    打开cmd,按如下步骤操作,显示 server version:5.7.28,安装成功。

    7074d8e07ce18de14979add056a56518.png

    如何用客户端(Navicat)连接到MySQL数据库?

    第一步 打开Navicat

    436235c36fbfac510712b242c76da320.png

    第二步 连接MySQL

    5f08bee8651bdc863e4f1f555c38286d.png

    3)表的创建,删除和更新

    数据类型分为三种:字符串,数字及日期

    第一种:字符串

    5485db5ad97dd45b03f85771d98800f0.png

    CHAR 是用来指定存储字符串的列 的数据类型(字符型)。

    Varchar 字符类型可以覆盖所有数据类型的长度,不满十个字符串长度(比如三个或四个)也都自动保存原始字符串大小,避免重复数据处理。

    Text (微信类文字类文本数据类型)

    Blob (视频或图片类数据类型)

    第二种:数字

    5ca65f6c41e711ac1ec1b0a1ecd408ad.png

    MySQL有上图黄色段的四种数字类型数据,整数型数据。

    INTEGER型 用来指定存储整数的列的数据类型(数字型),不能存储小数。

    一个字符=3-4个字节

    灰色两种为浮点数据 (eg:余额宝日收益为1.3元)

    第三种:日期

    d086811dd46767980c74b44c49b88938.png

    如下举例:

    7831bfbbbc30c8feb38c956a715c0815.png

    上图学号为字符串类型而非数字类型(因为数字类一般不以0开头)。

    每种类型数据设置固定后, 后续对应数据都得按实际设置的数据类型匹配

    长度255为默认值

    标3的钥匙行表示为此数据表里的主键数据。

    8f9d9a90c9def0fe3e7d5fefc9c1cbc7.png

     非null表示不可以包含空值为:意为必须输入数据的原数

     按实际业务看,如果某一列数据可以有空值,则此处可以没有这个约束(无需打勾)

    主键:用来定位某一行数据唯一性的列。选取跟业务关联性较低的字段。表格设定后不要随意 修改主键。

    哪一列数据为主键的意思为 不能添加重复的数据列(比如两组学号值)否则会报错。

    联合主键:通过多个字段(即两个或更多的字段都设置为主键)设置为唯一标识记录。联合主键中字段允许有重复(不能全部重复)。

    114ea091bb0d1f322506595d3b6684f3.png

    联合主键即为固定某行数据,比如上述显示课程表里 学号和课程号联合主键即为 同一个学生只会在一门课上有一个记录。

    实战:

    a) 使用Navicat创建学校数据库

    第一步:双击Navicat打开,右击数据库名da 新建数据库,填写数据库名称,字符集及排序规则如下。

    392b781ae918d86a3338f2c9d2f94555.png

    第二步:打开数据库

    8bc9d10ea5a9291f2ef9674bf897423e.png

    创建数据库的CREATE DATABASE语句

    CREATE DATABASE 数据库名称;--CREATE DATABASE shop;

    b) 将上图四张表创建出来,表名为图中英文名称。将学生表学号列设置为主键,课程表学号课程号一起设置为联合主键,成绩表的课程号教师号一起设置为主键,教师表的教师号设置为主键元素,教师姓名这列设置为NULL(允许空值)

    第一步,右击表,新建表

    13c7c7496a224eccc9709f2acf71d2db.png

    32f32573d12bea057889c4f281916cfe.png

    依次将学生表四个字段添加,鼠标移至学号列右端单击设置为主键。

    648004b51ad34fdc29a75633ac81eb87.png

    保存,输入表名即可。

    接下来,按照以上步骤分别创建其余三个表。

    Course

    c07a614a6bee10395c11287fbaef1090.png

    Score

    92d9036a20bdd17ce358a464bef0f0e1.png

    Teacher

    f0de0b147d2d21296bbb34ce4839b14b.png

    语法1-2 创建表的CREATE TABLE语句

    bf9be6e5bfe21a8f9b303766f3b9c907.png

    d8ef4ac0de0b6613514710a119480bc3.png

    至此,上述四张表格创建完毕。

    ca0750a81d0485c5dbc20725b797eddc.png

    表的更新删除如下操作

    e3973483bee7310f32dfcd5dd73d14e2.png
    • 删除表时使用的DROP TABLE语句

    DROP TABLE 表名;--DROP TABLE Product;

    • 添加/删除列的ALTER TABLE语句

    ALTER TABLE <表名> ADD /DROP COLUMN <列的定义>;--ALTER TABLE Product ADD/DROP COLUMN product_name_pinyin VARCHAR(100);

    修改表名

    8f8d3524ccd804d5d1056c8f4faedee6.png

    4) 数据的插入,删除及更新

    dee053bb25e6b887b9573d85f75ed610.png

    若数据较多,使用sql语句批量插入数据

    0bc8fac7fad5fc78db71a0c24566d5e2.png

    6f9254177446e5913541fcf8386e4a73.png

    注意:列名不能加引号,数值需加引号表示为字符串的常数,语句结尾用分号结束。

    且所有符号需在英文状态下操作。

    37df0e27752bc908d9e4610e363fa7e6.png

    34f1d5864dd010ede60cb869f8f970ef.png

    l 列名不加引号,数据加引号。

    l 关键字为蓝色字部分 不区分大小写,表名或列名也不区分大小

    为了 理解起来更加容易,本书使用以下规则来书写 SQL 语句。

    ● 关键字大写 ● 表名的首字母大写 ● 其余(列名等)小写

    l 插入表中数据区分大小写。例如,在操作过程中,数据 Computer、COMPUTER 或 computer,三者是不一样的。

    l 常数(SQL三种数据类型)固定的书写方式

    字符串和日期常数需要使用单引号(')括起来。

    数字常数无需加注单引号(直接书写数字即可)。

    l 单词之间需要用半角空格或者换行来分隔

    • 数据库名称、表名和列名等可以使用以下三种字符。 ● 半角英文字母  ● 半角数字  ● 下划线(_)
    • 名称必须以半角英文字母作为开头。

    举例:

    365be10b073c3df432b7c5d810a80048.png

    将上述学校数据库里四张表里数据插入。

    注意:教师表里 有一个空值null(没有数据,不可用于计算)及空字符串(”‘):即为空字符串数据,可参与计算。

    学生表

    5c04406a38a1851d1d11e55db39641a2.png

    90e18aabf7836aa85f8cf6168850050d.png

     成绩表

    56d8b27f574918fcfae638759c64b6c5.png

    1204bd78d80d5e7daea7b1522b74cf35.png

     教师表

    a31b9c30b59184e47d299c256cf7f9e2.png

    75bba5c86dcd1d028946b8ff63eecca1.png

    至此,相关表格建立及数据插入在数据库完成。

    展开全文
  • 【批量导入图片】 将指定文件夹或包含子文件夹中所有图片瞬间(也可以按对应名称)按指定图片大小导入EXCEL中。允许一次性多图片格式(*.JPG/*.GIF/*.BMP/*.PNG),且支持模糊与非模糊方式导入图片,还可以导入的...
  • Python金融大数据分析

    2017-11-27 13:37:43
    其内容涵盖了Python的数据类型和结构、用matplotlib进行数据可视化、金融时间序列数据处理、高性能输入/输出操作、高性能的Python技术和库、金融学需要的多种数学工具、随机数生成和随机过程模拟、Python统计学...
  • 2-4-1 数据类型的字段属性 2-4-2 设定字段格式与属性 2-5 输入数据技巧 2-5-1 打开工作表窗口 2-5-2 数据表的格式设定 2-5-3 数据表输入数据 2-5-4 调整字段的列宽与行高 2-6 数据表编辑技巧 2-6-1 选取...
  • 实例103 将文本文件数据分解到Excel中的不同工作表 实例104 读取多个Word文档文件到Excel同一工作表 实例105 读取Access数据库中指定表数据到Excel 实例106 将SQL Server数据查询结果输出到Excel 235 4.3 将...
  • 实例252 ListView控件数据排序 实例253 ListView控件绘制底纹 实例254 列表视图拖动视图项 实例255 使ListView控件的选择项高亮显示 实例256 制作带复选框的ListView控件 11.7 选择类控件应用...
  • 实例252 ListView控件数据排序 实例253 ListView控件绘制底纹 实例254 列表视图拖动视图项 实例255 使ListView控件的选择项高亮显示 实例256 制作带复选框的ListView控件 11.7 选择类控件应用...
  • 实例252 ListView控件数据排序 实例253 ListView控件绘制底纹 实例254 列表视图拖动视图项 实例255 使ListView控件的选择项高亮显示 实例256 制作带复选框的ListView控件 11.7 选择类控件应用...
  • 全面改进了数据计算引擎,计算速度极快,在预览页面将报表保存为同式样的EXCEL或网页文件,在EXCEL中真正体现了人性化的报表界面,也许这才是你理想中的测量软件。 软件功能: 本系统适用于公路主线、立交...

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

在excel中数据类型可分为