程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python中的各種方法一覽-xls或csv處理

編輯:Python

目錄

xlsxwriter

pandas的to_csv最左邊多一列的問題

csv文件用csv.writer中的writerow方法寫入

保存多列數據

有多余空行

字符串被分割成一個字符占一個單元格的問題


xlsxwriter

xlsxwriter這個模塊,它生成的文件後綴名為.xlsx,最大能夠支持1048576行數據,16384列數據

wirte(row, col, *args)

向工作表單元格寫入普通的數據。

參數:

  • row - 單元格所在的行(索引從0開始計數)
  • col - 單元格所在的列(索引從0開始計數)
  • *args - 傳遞到子方法的附加參數諸如數字,字符串,單元格格式。

Excel區分不同的數據類型諸如字符串,數字,空格,公式和超鏈接。為了簡化向XlsxWriter文件寫入數據的過程, write()方法作為以下幾個特定方法的假名(譯者注:意思就是通常不需要程序員顯式地指定以下方法,在使用write()方法時XlxsWriter會按照規則判斷數據類型並采用對應的方法寫入數據):

  • write_string()
  • write_number()
  • write_blank()
  • write_formula()
  • write_datetime()
  • write_boolean()
  • write_url()

write()處理數據的規則如下:

  • 數據類型諸如float, int, long, decimal.Decimal和fractions.Fraction 使用write_number()方法。
  • 數據類型諸如datatime.datetime,datetime.datedatetime.time 或 datetime.timedelta 使用write_datetime()方法。
  • None和空字符串“”使用write_blank()方法。
  • 數據類型bool使用write_boolean()。

字符串(String)則按照以下規則處理數據:

  • 以“=”開始的匹配公式字符串使用write_formula()方法。這個方法可以被覆蓋,見下。
  • 匹配支持的URL的字符串使用write_url()方法。這個方法可以被覆蓋,見下。
  • 為了防止Excel警告“Numbers Stored as Text”,當Workbook()構造器strings_to_numbers選項為True時,被float()方法轉換為數字的字符串會使用write_number()方法。見下。
  • 不匹配以上條件的字符串會使用write_string()方法。

如果值不匹配以上所有類型,最終會使用 float()來檢查它是否與用戶定義的浮點類型相對應。如果不對應,則會使用 write_number()方法。

最後,如果這些規則全都不匹配,那麼程序會拋 TypeError異常。

例子

import xlsxwriter
#寫excel
def write_excel():
workbook = xlsxwriter.Workbook('chat.xlsx')#創建一個excel文件
worksheet = workbook.add_worksheet(u'sheet1')#在文件中創建一個名為TEST的sheet,不加名字默認為sheet1
worksheet.set_column('A:A',20)#設置第一列寬度為20像素
bold= workbook.add_format({'bold':True})#設置一個加粗的格式對象
worksheet.write('A1','HELLO')#在A1單元格寫上HELLO
worksheet.write('A2','WORLD',bold)#在A2上寫上WORLD,並且設置為加粗
worksheet.write('B2',U'中文測試',bold)#在B2上寫上中文加粗
worksheet.write(2,0,32)#使用行列的方式寫上數字32,35,5
worksheet.write(3,0,35.5)#使用行列的時候第一行起始為0,所以2,0代表著第三行的第一列,等價於A4
worksheet.write(4,0,'=SUM(A3:A4)')#寫上excel公式
workbook.close()
if __name__ == '__main__':
# 寫入Excel
write_excel();
print ('寫入成功')

pandas的to_csv最左邊多一列的問題

設置index = False

csv文件用csv.writer中的writerow方法寫入

保存多列數據

with open("gduf.csv",'a',encoding="utf-8",newline="") as f:
writer=csv.writer(f)#先獲取寫入對象
writer.writerow([title.a.text,title_url])#寫入兩列數據

有多余空行

加一個newline=''

with open(output_file, 'w+', newline='') as f:

字符串被分割成一個字符占一個單元格的問題

使用writerow方法必須將字符串轉化成列表,否則就會一個字符占一個單元格。

所以加上[ ]即可


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved