0

我是一名学生,并没有很大的期限来做这项工作。所以问题是下一个。我有一部分代码:

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 文件并读取其中的所有数据。在该程序必须计算例如 Alcaline、Alcaline 类型等之后。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文件。我已经完成的第一部分工作,但它仍然很重要最后我需要读取所有文件并计算值。

我会很感激一些建议

4

1 回答 1

1

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

在埃及举行总统选举时,我还使用它做了一些工作,因为我们需要将大量数据导入到 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

于 2012-12-10T17:12:53.530 回答