Python tablib模块

Python tablib模块是第三方模块,主要作用是将数据导出为各种不同的格式,包括excel,json,html,yaml,csv,tsv等格式,怎么样,有点心动了吧,当然这个模块使用起来也是超级简单的

 

首先安装这个模块,打开cmd,然后python –m pip install tablib就可以啦

 

安装好之后,就可以使用啦,下面举个简单的栗子就知道怎么用啦

 

 

  1. import tablib
  2. import os
  3.  
  4. #创建dataset,方法1
  5. dataset1 = tablib.Dataset()
  6. header1 = ('ID', 'Name', 'Tel', 'Age')
  7. dataset1.headers = header1
  8. dataset1.append([1, 'zhangsan', 13711111111, 16])
  9. dataset1.append([2, 'lisi', 13811111111, 18])
  10. dataset1.append([3, 'wangwu', 13911111111, 20])
  11. dataset1.append([4, 'zhaoliu', 15811111111, 25])
  12. print('dataset1:', os.linesep, dataset1, os.linesep)
  13.  
  14. #创建dataset,方法2
  15. header2 = ('ID', 'Name', 'Tel', 'Age')
  16. data2 = [
  17. [1, 'zhangsan', 13711111111, 16],
  18. [2, 'lisi', 13811111111, 18],
  19. [3, 'wangwu', 13911111111, 20],
  20. [4, 'zhaoliu', 15811111111, 25]
  21. ]
  22. dataset2 = tablib.Dataset(*data2, headers = header2)
  23. print('dataset2: ', os.linesep, dataset2, os.linesep)
  24.  
  25. #增加行
  26. dataset1.append([5, 'sunqi', 15911111111, 30]) #添加到最后一行的下面
  27. dataset1.insert(0, [0, 'liuyi', 18211111111, 35]) #在指定位置添加行
  28. print('增加行后的dataset1: ', os.linesep, dataset1, os.linesep)
  29.  
  30. #删除行
  31. dataset1.pop() #删除最后一行
  32. dataset1.lpop() #删除第一行
  33. del dataset1[0:2] #删除第[0,2)行数据
  34. print('删除行后的dataset1:', os.linesep, dataset1, os.linesep)
  35.  
  36. #增加列
  37. #现在dataset1就剩两行数据了
  38. dataset1.append_col(('beijing', 'shenzhen'), header='city') #增加列到最后一列
  39. dataset1.insert_col(2, ('male', 'female'), header='sex') #在指定位置添加列
  40. print('增加列后的dataset1: ', os.linesep, dataset1, os.linesep)
  41.  
  42. #删除列
  43. del dataset1['Tel']
  44. print('删除列后的dataset1: ', os.linesep, dataset1, os.linesep)
  45.  
  46.  
  47. #获取各种格式的数据
  48. print('yaml format: ', os.linesep ,dataset1.yaml, os.linesep)
  49. print('csv format: ' , os.linesep ,dataset1.csv , os.linesep)
  50. print('tsv format: ' , os.linesep ,dataset1.tsv , os.linesep)
  51.  
  52.  
  53. #导出到Excel表格中
  54. dataset1.title = 'dataset1' #设置Excel中表单的名称
  55. dataset2.title = 'dataset2'
  56. myfile = open('mydata.xlsx', 'wb')
  57. myfile.write(dataset1.xlsx)
  58. myfile.close()
  59.  
  60. #如果有多个sheet表单,使用DataBook就可以了
  61. myDataBook = tablib.Databook((dataset1, dataset2))
  62. myfile = open(myfile.name, 'wb')
  63. myfile.write(myDataBook.xlsx)
  64. myfile.close()

 

 

输出的结果为:

    1. dataset1:
    2. ID|Name |Tel |Age
    3. --|--------|-----------|---
    4. 1 |zhangsan|13711111111|16
    5. 2 |lisi |13811111111|18
    6. 3 |wangwu |13911111111|20
    7. 4 |zhaoliu |15811111111|25
    8.  
    9.  
    10. dataset2:
    11. ID|Name |Tel |Age
    12. --|--------|-----------|---
    13. 1 |zhangsan|13711111111|16
    14. 2 |lisi |13811111111|18
    15. 3 |wangwu |13911111111|20
    16. 4 |zhaoliu |15811111111|25
    17.  
    18.  
    19. 增加行后的dataset1:
    20. ID|Name |Tel |Age
    21. --|--------|-----------|---
    22. 0 |liuyi |18211111111|35
    23. 1 |zhangsan|13711111111|16
    24. 2 |lisi |13811111111|18
    25. 3 |wangwu |13911111111|20
    26. 4 |zhaoliu |15811111111|25
    27. 5 |sunqi |15911111111|30
    28.  
    29.  
    30. 删除行后的dataset1:
    31. ID|Name |Tel |Age
    32. --|-------|-----------|---
    33. 3 |wangwu |13911111111|20
    34. 4 |zhaoliu|15811111111|25
    35.  
    36.  
    37. 增加列后的dataset1:
    38. ID|Name |sex |Tel |Age|city
    39. --|-------|------|-----------|---|--------
    40. 3 |wangwu |male |13911111111|20 |beijing
    41. 4 |zhaoliu|female|15811111111|25 |shenzhen
    42.  
    43.  
    44. 删除列后的dataset1:
    45. ID|Name |sex |Age|city
    46. --|-------|------|---|--------
    47. 3 |wangwu |male |20 |beijing
    48. 4 |zhaoliu|female|25 |shenzhen
    49.  
    50.  
    51. yaml format:
    52. - {Age: 20, ID: 3, Name: wangwu, city: beijing, sex: male}
    53. - {Age: 25, ID: 4, Name: zhaoliu, city: shenzhen, sex: female}
    54.  
    55.  
    56.  
    57. csv format:
    58. ID,Name,sex,Age,city
    59. 3,wangwu,male,20,beijing
    60. 4,zhaoliu,female,25,shenzhen
    61.  
    62.  
    63.  
    64.  
    65. tsv format:
    66. ID Name sex Age city
    67. 3 wangwu male 20 beijing
    68. 4 zhaoliu female 25 shenzhen
    69.  
    70.  
posted @ 2018-07-13 11:23  Awakenedy  阅读(416)  评论(0)    收藏  举报