python 表格存取方法(转)

xlwt/xlrd库 存Excel文件:(如果存储数据中有字符,那么写法还有点小小的变化)

 

[python] view plain copy
 
  1. import xlwt  
  2.   
  3. workbook = xlwt.Workbook(encoding='utf-8')  
  4. booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)  
  5. #存第一行cell(1,1)和cell(1,2)  
  6. booksheet.write(0,0,34)  
  7. booksheet.write(0,1,38)  
  8. #存第二行cell(2,1)和cell(2,2)  
  9. booksheet.write(1,0,36)  
  10. booksheet.write(1,1,39)  
  11. #存一行数据  
  12. rowdata = [43,56]  
  13. for i in range(len(rowdata)):  
  14.     booksheet.write(2,i,rowdata[i])  
  15. workbook.save('test_xlwt.xls')  

 

读Excel文件:(同样是对于数值类型数据)

 

[python] view plain copy
 
  1. import xlrd  
  2.   
  3. workbook = xlrd.open_workbook('D:\\Py_exercise\\test_xlwt.xls')  
  4. print(workbook.sheet_names())                  #查看所有sheet  
  5. booksheet = workbook.sheet_by_index(0)         #用索引取第一个sheet  
  6. booksheet = workbook.sheet_by_name('Sheet 1')  #或用名称取sheet  
  7. #读单元格数据  
  8. cell_11 = booksheet.cell_value(0,0)  
  9. cell_21 = booksheet.cell_value(1,0)  
  10. #读一行数据  
  11. row_3 = booksheet.row_values(2)  
  12. print(cell_11, cell_21, row_3)  
  13.   
  14. >>>34.0 36.0 [43.0, 56.0]  


openpyxl 库 存Excel文件:

 

 

[python] view plain copy
 
  1. from openpyxl import Workbook  
  2.    
  3. workbook = Workbook()  
  4. booksheet = workbook.active     #获取当前活跃的sheet,默认是第一个sheet  
  5. #存第一行单元格cell(1,1)  
  6. booksheet.cell(1,1).value = 6   #这个方法索引从1开始  
  7. booksheet.cell("B1").value = 7  
  8. #存一行数据  
  9. booksheet.append([11,87])  
  10. workbook.save("test_openpyxl.xlsx")  


读Excel文件:

 

 

[python] view plain copy
 
  1. from openpyxl import load_workbook  
  2.    
  3. workbook = load_workbook('D:\\Py_exercise\\test_openpyxl.xlsx')  
  4. #booksheet = workbook.active                #获取当前活跃的sheet,默认是第一个sheet  
  5. sheets = workbook.get_sheet_names()         #从名称获取sheet  
  6. booksheet = workbook.get_sheet_by_name(sheets[0])  
  7.   
  8. rows = booksheet.rows  
  9. columns = booksheet.columns  
  10. #迭代所有的行  
  11. for row in rows:  
  12.     line = [col.value for col in row]  
  13.   
  14. #通过坐标读取值  
  15. cell_11 = booksheet.cell('A1').value  
  16. cell_11 = booksheet.cell(row=1, column=1).value  

原理上其实都一样,就写法上有些差别。

 

 

其实如果对存储格式没有要求的话,我觉得存成 csv文件 也挺好的:

 

[python] view plain copy
 
  1. import pandas as pd  
  2.   
  3. csv_mat = np.empty((0,2),float)  
  4. csv_mat = np.append(csv_mat, [[43,55]], axis=0)  
  5. csv_mat = np.append(csv_mat, [[65,67]], axis=0)  
  6. csv_pd = pd.DataFrame(csv_mat)  
  7. csv_pd.to_csv("test_pd.csv", sep=',', header=False, index=False)  

因为它读起来非常简单:

 

 

[python] view plain copy
 
    1. import pandas as pd  
    2.   
    3. filename = "D:\\Py_exercise\\test_pd.csv"  
    4. csv_data = pd.read_csv(filename, header=None)  
    5. csv_data = np.array(csv_data, dtype=float)  
posted @ 2018-03-06 14:58  欧阳平  阅读(5662)  评论(0编辑  收藏  举报