Python读取和写入Excel文件[整]

详见百度空间:http://hi.baidu.com/ilovelittree/item/62270cdf54fff132d80e4468


学习用Python处理Excel文件,这里主要用xlrdxlwt模块,用前需要安装!本文是来自几篇博客和官网tutorial的整理,主要是一个入门。更多的处理Excel的方法请到官网学习,链接为:http://www.simplistix.co.uk/presentations/python-excel.pdf

另外,几篇博客的参考资料:

http://syue.com/Software/Language/Python/21655.html

http://blog.csdn.net/wangxiaoyan1988/article/details/6562374

http://www.2cto.com/kf/201207/140006.html

 

 

AExcel数据的类型及组织方式


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

 

 

B: Excel中读取数据

从一个既有的xlsx文件中读取数据,按照Excel文件的三个层级,分别做以下三个步骤

 

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
sh = book.sheet_by_index(0)  #
获得一个sheet,也可以使名字获得
print sh.name, sh.nrows, sh.ncols

注:

Sheet类方法、属性等:
sh.cell(rowx, colx):
 根据给出的行和列的参数获取得到cell类,返回一个Cell类实例对象
sh.cell_type(rowx, colx):
 返回对应的cell对象的Type类型
sh.cell_value(rowx, colx):
 返回对应的cell对象的value
sh.col(colx):
 返回指定列的所有cell类对象序列
sh.name:
 返回sheet对象的名称
sh.ncols:
 返回在sheet对象中的列的数目
sh.nrows:
 返回在sheet对象中的行的数目
sh.row(rowx):
 返回指定的行的所有cell对象的序列

 

 

3. 获取对应cell的值:

cell=sh.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)这样设置的时候

 

4.一个读取Excel的例子

 

import xlrd
book = xlrd.open_workbook("myfile.xls")
print "The number of worksheets is", book.nsheets
print "Worksheet name(s):", book.sheet_names()
sh = book.sheet_by_index(0)
print sh.name, sh.nrows, sh.ncols
print "Cell D30 is", sh.cell_value(rowx=29, colx=3)
for rx in range(sh.nrows):
    print sh.row(rx)

 

 

C: Writing Excel Files

 

All the examples shown below can be found in the xlwt directory of the course material.Excel xlrd模块,写用xlwt模块

 

1.     Creating elements within a Workbook创建一个Excel文件

 

Import xlwt

wb=xlwt.Workbook(“zc.xls”) #Workbook 首字母大写

 

 

2.    Worksheets 添加Sheet

 

Worksheets are created with the add_sheet method of the Workbook class.

To retrieve an existing sheet from a Workbook, use its get_sheet method. This method is particularly useful when the Workbook has been instantiated by xlutils.copy.

 

Sheet1=wb.add_sheet(“sheetname”)

 

 

3.    Rows and Columns 行与列的表示:

 

row1 = sheet1.row(1)

col0=sheet2.col(0)

 

4.    Cells

 

Cells can be written using either the write method of either the Worksheet or Row class.

sheet1.write(0,1,'B1')

row1.write(0,'A2')

 

5.    svave  保存文件:

 

wb.save(“zc.xls”)

 

6.    Excel写入的一个简单的例子

from xlwt import Workbook

book = Workbook()

sheet1 = book.add_sheet('Sheet 1')  #添加一个sheet

book.add_sheet('Sheet 2')

sheet1.write(0,0,'A1')   #通过sheet添加cell

sheet1.write(0,1,'B1')

row1 = sheet1.row(1)

row1.write(0,'A2')     #还可以通过row属性添加cell

row1.write(1,'B2')

sheet1.col(0).width = 10000

sheet2 = book.get_sheet(1)

sheet2.row(0).write(0,'Sheet 2 A1')  #又一种添加

sheet2.row(0).write(1,'Sheet 2 B1')

sheet2.flush_row_data()

sheet2.write(1,0,'Sheet 2 A3')

sheet2.col(0).width = 5000

sheet2.col(0).hidden = True

book.save('simple.xls')

 

D 稍微复杂的例子和巩固

Ex1:

 

import xlrd
fname = "sample.xls"   #
一个文件路径和文件名
bk = xlrd.open_workbook(fname)    #
打开一个workbook
shxrange = range(bk.nsheets)   #
各个sheet之间的转换?
try:     #
提取sheet1
    sh = bk.sheet_by_name("Sheet1")
except:
    print "no sheet in %s named Sheet1" % fname
    return None
nrows = sh.nrows
ncols = sh.ncols
print "nrows %d, ncols %d" % (nrows, ncols)

cell_value = sh.cell_value(1,1)
print cell_value

row_list = []
for i in range(1, nrows):
    row_data = sh.row_values(i)
    row_list.append(row_data)

 

 

ex2:

 1

2 import xlrd
 3 import xlwt
 4
 5 class OperExcel():
   #
读取Excel
   def rExcel(self,inEfile,outfile):
     rfile = xlrd.open_workbook(inEfile)
     #
创建索引顺序获取一个工作表
10     table = rfile.sheet_by_index(0)
11     #
其他方式
12     #table = rfile.sheets()[0]
13     #table = rfile.sheet_by_name(u'Sheet1')
14
15     #
获取整行,整列的值
16     table.row_values(0)
17     table.col_values(0)
18
19     #
获取行数和列数
20     nrows = table.nrows - 1
21     ncols = table.ncols
22
23     #
循环获取列表的数据
24     #for i in range(nrows):
25     #  print table.row_values(i)
26     wfile = open(outfile,'w')
27     #
获取第一列中的所有值
28     for i in range(nrows):
29       #table.cell(i,0).value
获取某一单元格的值
30       wfile.write(table.cell(i,0).value.encode('utf8') + '\n')
31     wfile.close()
32
33 #
将数据写入Excel
34   def wExcel(self,infile,outEfile):
35     rfile = open(infile,'r')
36     buf = rfile.read().split('\n')
37     rfile.close()
38
39     w = xlwt.Workbook()
40     sheet = w.add_sheet('sheet1')
41     for i in range(len(buf)):
42       print buf[i]
43       sheet.write(i,0,buf[i].decode('utf8'))
44     w.save(outEfile)
45
46 if __name__ == '__main__':
47   t = OperExcel()
48   t.rExcel('test.xls','test')
49   t.wExcel('test','1.xls')

50 #  作者:sunrise

### 回答1: Python可以使用openpyxl库来读取txt文件并将其写入Excel文件。 以下是一个简单的示例代码: ```python import openpyxl # 打开txt文件 with open('file.txt', 'r') as f: # 读取每一行数据 lines = f.readlines() # 创建一个新的Excel文件 workbook = openpyxl.Workbook() sheet = workbook.active # 将每一行数据写入Excel文件 for i, line in enumerate(lines): # 将每一行数据按照空格分割成列表 data = line.strip().split(' ') # 将数据写入Excel文件 for j, value in enumerate(data): sheet.cell(row=i+1, column=j+1, value=value) # 保存Excel文件 workbook.save('file.xlsx') ``` 在这个示例中,我们首先使用`open()`函数打开txt文件读取每一行数据。然后,我们使用openpyxl库创建一个新的Excel文件,并将每一行数据写入Excel文件中。最后,我们使用`save()`方法保存Excel文件。 需要注意的是,在将数据写入Excel文件时,我们使用`cell()`方法指定行和列的位置,并将数据写入该位置。在这个示例中,我们假设每一行数据都是由空格分隔的,因此我们使用`split()`方法将每一行数据分割成一个列表。然后,我们使用`enumerate()`函数来遍历列表中的每一个元素,并将其写入Excel文件中。 ### 回答2: Python是一种高级编程语言,兼具面向过程、面向对象和函数式编程风格,适用于多种领域的开发,其中实现文件读写非常方便。本文将介绍如何使用Python读取txt文件,并将读取到的数据写入Excel文件中。 1.读取txt文件 使用Python的内置函数open()可以打开一个文件,然后从该文件读取数据。将open()与readline()相结合,就可以按行读取txt文件的内容。 下面是一个读取txt文件内容的示例代码: filename = "example.txt" with open(filename, 'r') as file: content = file.readlines() 这段代码读取名为example.txt的文件中的所有行,并将其存储在名为content的列表中。 2.写入Excel文件 使用Python的openpyxl库可以读取、编写和操作Excel文件,因此我们可以使用openpyxl函数将上面读取到的txt文件中的内容写入到一个Excel文件中。 下面是一个将Excel文件写入数据的示例代码: import openpyxl filename = "example.xlsx" sheet_name = "Sheet1" data = ["A", "B", "C", "D"] workbook = openpyxl.Workbook() sheet = workbook.active sheet.title = sheet_name sheet.append(data) workbook.save(filename) 这段代码使用openpyxl库创建了一个名为example.xlsx的Excel文件,并在其中创建了一个名为Sheet1的工作表。然后,向工作表添加表示数据的文本字符串并保存文件。 3.完代码 最后,把读取txt文件和将数据写入Excel文件的代码结合起来,可以实现完的操作。下面是一个将txt文件中内容写入Excel文件的示例代码: import openpyxl filename = "example.txt" sheet_name = "Sheet1" with open(filename, 'r') as file: content = file.readlines() workbook = openpyxl.Workbook() sheet = workbook.active sheet.title = sheet_name for line in content: data = line.split() sheet.append(data) workbook.save("example.xlsx") 这段代码打开名为example.txt的文件,在读取它们时将数据从每行分解为分隔符空格的字符串,并在Excel文件中创建一个新的工作表。然后,将数据逐行添加到该工作表中,且必要时Excel文件将被保存。 ### 回答3: Python是一种高级编程语言,用于处理各种任务。其中,读取文本文件并将其写入ExcelPython处理数据的重要操作之一。下面,我将分享如何通过Python读取txt文件并将其写入Excel表格中。 Step 1:打开文件 首先,通过Python打开txt文件。此操作可以通过使用Python的内置文件操作实现。在调用打开函数时,需要指定文件名以及文件打开模式。例如: ``` f = open('data.txt', 'r') ``` 其中,'data.txt'是需要打开的文件名,而'r'指示的是文件打开模式——只读模式。 Step 2:按行读取txt文件 Python中的文件对象可以按行读取文件。使用内置函数readline()可以实现从文件读取一行数据。在例子中,我们使用while循环将所有行读取到列表lines中,如下所示: ``` lines = [] while True: line = f.readline() if not line: break lines.append(line) ``` 读取完txt文件的所有行后,需要关闭文件以避免占用系统资源。 ``` f.close() ``` Step 3:写入Excel表格 读取的数据需要转换为Excel表格。在Python中,可以使用第三方库“openpyxl”实现将数据写入Excel表格。在此之前,需要安装该库。 ``` pip install openpyxl ``` 安装完成后,需要导入这个库以及其他必要的库,如下所示: ``` from openpyxl import Workbook from openpyxl.utils import get_column_letter from openpyxl.styles import Font ``` 首先创建一个Workbook对象,这个工作簿可以保存数据并最终生成Excel表格。 ``` wb = Workbook() ws = wb.active ``` 之后,我们按行迭代读取的lines列表,并将其写入Excel表格中。使用ws.cell()方法可以在指定单元格位置写入数据。在调用save()函数进行保存操作之前,可以设置Excel表格的格式。 ``` for row in range(1, len(lines)): line = lines[row] line = line.strip().split(',') for column in range(len(line)): char = get_column_letter(column + 1) ws[char + str(row)] = line[column] wb['A1'].font = Font(bold=True) wb.save('data.xlsx') ``` 在以上操作完成后,将使用“data.xlsx”作为输出文件保存Excel表格。以上就是Python读取txt文件并将其写入Excel表格的完流程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值