不知道用python-excel读取数据文件

时间:2012-12-10 16:44:05

标签: python excel

我是一名学生,并没有很大的经验来完成这项工作。 接下来就是问题。 我有一部分代码:

import matplotlib.pyplot as plt
from pylab import *
import cmath
def sf(prompt):
""" """
    error_message = "Value must be integer and greater or equal than zero"
    while True:
        val = raw_input(prompt)
        try:
            val = float(val)
        except ValueError:
            print(error_message)
            continue
        if val <= 0:
            print(error_message)
            continue
        return val
def petrogen_elements():
    """Input and calculations the main parameters for
    pertogen elements"""
    print "Please enter Petrogen elements: \r"
    SiO2 = sf("SiO2: ")
    Al2O3= sf("Al2O3: ")
    Na2O = sf("Na2O: ")
    K2O =  sf("K2O: ")

    petro = [SiO2,TiO2,Al2O3,]                    

    Sum = sum(petro)

    Alcal = Na2O + K2O
    TypeA lcal= Na2O / K2O
    Ka= (Na2O + K2O)/ Al2O3 

    print  '-'*20, "\r Alcal: %s \r TypeAlcal: %s  \
     \r Ka: %s \r" % (Alcal, TypeAlcal,Ka,)

petrogen_elements()

接下来是问题所在。我必须加载并读取excel文件并读取其中的所有数据。之后该程序必须 计算例如碱性,碱性类型等。 Excel文件只有这个结构

   1    2     3     4    5     
1 name1 SiO2 Al2O3 Na2O K2O
2        32  12    0.21 0.1
3 name2 SiO2 Al2O3 Na2O K2O
4        45    8   7.54  5
5 name3 SiO2 Al2O3 Na2O K2O
6. … …. …. …
…
… 

所有excel文件只有5列且行数不受限制。 用户可以选择输入数据或导入Excel文件。 我已完成的第一部分工作,但它仍然很重要 最后,我需要读取所有文件并计算值。

我会非常感谢你的一些建议

1 个答案:

答案 0 :(得分:1)

这个网站http://www.python-excel.org/列出了所有主要的Python excel相关库。 我个人尝试过X​​LRD--第一个列出的 - 并且发现它很棒,并且它有一个简洁的文档。

在总统选举在埃及举行时,我也做了一些使用它的工作,因为excel表中有大量数据我们需要导入到mysql数据库中。我已经在Github上发布了代码:https://github.com/mos3abof/egypt-elections-misc

首先安装xlrd

您将提出的脚本应该是:

from xlrd import *
## Opening the excel file
book = open_workbook('excel_file.xls')

## Reading the sheet we need
## Most probably the data will be on the first sheet, 
## otherwise this needs to be updated
our_sheet = book.sheet_by_index(0)

## Get the rows number
rowcount = our_sheet.nrows

## Looping over sheet rows
for i in range(rowcount -1):
    ## Get the data in the row
    our_row = our_sheet.row_slice(i+1)

    ## Access each row by index and do whatever you like with it
    ## Since you have 5 columns, the index will range from 0 - 4
    print our_row[0]
    print our_row[1]
    print our_row[2]
    print our_row[3]
    print our_row[4]

您可以在我在此文件中提到的脚本中找到一个有效的示例:https://github.com/mos3abof/egypt-elections-misc/blob/master/elections_import_excel.py