`
duan1823a
  • 浏览: 90815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python 处理Excel2003与2007的工具

阅读更多
最近用到这个模块,写的一个工具类!记着怕以后忘了
# -*-coding:GBK-*-
#!C:\Python27\python.exe
'''
Created on 2012-12-14

@author: duanzuocai
@note: Excel 工具
'''
from openpyxl.cell import get_column_letter
from openpyxl.reader.excel import load_workbook
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import ExcelWriter
import xlrd
import xlwt

class Excel2003:
    ''' 要安装xlrd模块 '''
    sheet = workBook = None;
    X = 0; Y = 0; xIndex = 0; yIndex = 0;
    
    def __init__(self, path, sheet=0):
        wb = xlrd.open_workbook(path)
        sh = wb.sheet_by_index(sheet)  # sheet = wb.sheet_by_name(u'Sheet1') 得到excel.Sheet
        self.sheet = sh
        self.workBook = wb
        self.Y = self.sheet.nrows
        self.X = self.sheet.ncols
    
    def readLineX(self, num):  # 读一列
        if num > self.X: return None
        return self.sheet.col_values(num)
    def readLineY(self, num):  # 读一排
        if num > self.Y: return None
        return self.sheet.row_values(num)
    
    def read(self, x, y):
        # 通过索引读取数据:    
        return self.sheet.cell(x, y).value
    
    def nextY(self):
        if self.yIndex >= self.Y: return None;
        vs = self.readLineY(self.yIndex)
        self.yIndex += 1;
        return vs;
    
    def nextX(self):
        if self.xIndex >= self.X: return None;
        vs = self.readLineX(self.xIndex)
        self.xIndex += 1;
        return vs;
    
    def resetX(self):
        self.xIndex = 0;
    
    def resetY(self):
        self.yIndex = 0;
        
    def hasNextX(self):
        return self.X > self.xIndex
        
    def hasNextY(self):
        return self.Y > self.yIndex
    
class Excel2003Create():
    ''' 需要xlwt模块 '''
    path = workBook = sheet = None;
    def __init__(self, path):
        self.path = path
        self.workBook = xlwt.Workbook()
    
    def createSheet(self, sName):
        return self.workBook.add_sheet(sName)
    
    def set(self, sheet_obj, x, y, value):
        sheet_obj.write(x, y, value)
        
    def save(self):
        self.workBook.save(self.path)
    
class Excel2007(Excel2003):
    ''' 要安装openpyxl模块 '''
    def __init__(self, path, sheetNum):
        wb = load_workbook(filename=path)
        if sheetNum > len(wb.get_sheet_names()):
            print 'Error: out of index the sheetNumber', len(wb.get_sheet_names());
            return
        sheetName = wb.get_sheet_names()[sheetNum]
        self.sheet = wb.get_sheet_by_name(name=sheetName)
        self.Y = self.sheet.get_highest_row()
        self.X = self.sheet.get_highest_column()
        
    def read(self, x, y):
        return self.sheet.cell(row=y, column=x).value
    
    def readLineX(self, num):  # 读一列
        if num > self.X: return None
        xs = []
        for i in range(self.Y):
            xs.insert(i, self.read(num, i))
        return xs
    def readLineY(self, num):  # 读一排
        if num > self.Y: return None
        ys = []
        for i in range(self.X):
            ys.insert(i, self.read(i, num))
        return ys
    
class Excel2007Write():
    excelWriter = path = workBook = sheet = None;
    def __init__(self, path):
        self.path = path
        self.workBook = Workbook()
        self.excelWriter = ExcelWriter(workbook=self.workBook)
    
    def createSheet(self, index, name):
        sheet = self.workBook.worksheets[index]
        sheet.title = name
        return sheet
    
    def set(self, sheet_obj, x, y, value):
        col = get_column_letter(x+1)
        sheet_obj.cell('%s%s' % (col, y+1)).value = value
        
    def save(self):
        self.excelWriter.save(filename=path)
    
if __name__ == '__main__':
    path = 'C:\\Users\\duanzuocai.DS\\Desktop\\ab.xlsx';
    
    excel = Excel2007Write(path)
    s1 = excel.createSheet(0, "doc1")
    excel.set(s1, 0, 0, '00')
    excel.set(s1, 0, 1, '01')
    excel.set(s1, 0, 2, '02')
    excel.set(s1, 1, 0, '10')
    excel.set(s1, 1, 1, '11')
    excel.save()

分享到:
评论

相关推荐

    从零基础开始用Python处理Excel数据pdf

    在IT行业中,Python是一种广泛应用的开发语言,尤其在数据处理领域表现出色。...阅读"从零基础开始用Python处理Excel数据"的PDF文档,将会帮助你逐步掌握这些技能,并加深对Python在数据处理方面的理解。

    python处理excel绘制雷达图

    python处理excel制成雷达图,利用工具plotly在线生成,事先要安装好xlrd组件 代码: import xlrd //事先要下载好xlrd组件 import plotly.plotly as py import plotly.graph_objs as go from plotly import tools ...

    python处理excel案例.docx

    Python在处理Excel文件方面具有强大的能力,这得益于其丰富的库支持。在上述案例中,主要提到了三个常用的库:pandas、openpyxl...因此,掌握Python处理Excel文件的方法对于数据分析师和程序员来说是非常有价值的技能。

    python解析excel解析读取excel工具,主要用于跟excel文件相关的处理

    Python是一种广泛使用的编程语言,尤其在数据处理领域,它提供了许多强大的库来处理Excel文件。在本主题中,我们将深入探讨Python如何解析和读取Excel文件,以及这在实际应用中的重要性。 首先,让我们了解Python中...

    Python-Excel合并小工具

    【Python-Excel合并小工具】是一款实用的Python编程实现的应用,专为处理Excel文件而设计。这个小工具能够高效地将指定文件夹内的所有Excel文件整合到一个单一的Excel表格中,极大地简化了数据管理和分析的工作流程...

    python处理excel制成雷达图

    python处理excel制成雷达图,利用工具plotly,在线生成,事先要安装好xlrd组件

    Python对Excel操作教程.pdf

    【Python对Excel操作详解...总结来说,Python提供了多种方法来处理Excel文件,无论你是简单的数据读写还是复杂的数据分析,都能找到合适的工具和库。了解和掌握这些库的使用,将极大提升你在数据处理上的效率和灵活性。

    excel2003 与 excel2007 导入

    综上所述,处理Excel2003和Excel2007导入涉及理解文件格式差异、选择合适的编程接口和库,并根据实际需求编写或使用已有代码。开发者应确保代码能正确处理两种格式,特别是考虑到OpenXML的复杂性和文件结构的不同。

    用python处理excel专栏数据集

    本篇将详细探讨如何利用Python处理Excel专栏数据集,包括读取、写入、修改以及分析Excel文件。 首先,Python中的主要库有`pandas`和`openpyxl`,它们是处理Excel数据的核心工具。`pandas`是一个高效的数据结构库,...

    Python-Excel按照某列拆分多个文件-工具(带界面)

    1. **Python处理Excel**:Python的`pandas`库是处理Excel文件的核心工具。`pandas`提供了DataFrame数据结构,可以轻松地读取、写入Excel文件,并进行各种数据操作。`read_excel()`函数用于读取Excel文件,`to_excel...

    Python读取excel 文件操作说明.zip_excel_morningy2h_python 处理excel_python操

    在Python编程中,处理Excel文件是一项常见的任务,无论是数据分析、数据清洗还是自动化报告,都需要对Excel文件进行读取和写入。...记住,学习和实践是提高技能的关键,祝你在Python处理Excel文件的道路上越走越远!

    Python对Excel操作详解.doc

    5. 更现代的选择:近年来,pandas库成为了Python数据操作的事实标准,它也提供了非常方便的Excel读写功能,同时支持xlsxwriter和openpyxl库,可以处理Excel 2007及更高版本的XLSX格式。 ```python import pandas as...

    python处理excel详解

    首先,"python处理excel的教程"可能会介绍基础操作,如读取、写入和修改Excel文件。Python的`openpyxl`库是一个常用的工具,它允许你直接与.xlsx文件交互,创建工作簿、工作表,并进行单元格级别的操作。此外,`xlrd...

    Python 处理Excel表格

    Python 处理Excel表格

    python读写EXCEL插件

    在这个主题中,我们将重点关注三个关键的Python库:xlrd、xlutils和xlwt,它们都是用于处理Excel文件的重要工具。 首先,xlrd是Python的一个库,专为读取Excel文件设计。它支持多种Excel文件格式,包括.BIFF8...

    Python excel工具

    "Python excel工具"这个主题涉及到的是如何使用Python库来操作Excel文件,以便进行数据分析、数据清洗或者生成报表等工作。下面将详细阐述Python在处理Excel文件时常用的一些库和操作方法。 首先,`xlrd`和`xlwt`是...

    【Python处理EXCEL】基础操作篇:在Python中导入EXCEL数据

    在Python编程语言中,处理Excel数据是一项常见的任务,特别是在数据分析、报表生成以及数据清洗等领域。Python提供了多个库来支持Excel文件的读取和写入,其中最常用的有`pandas`库和`openpyxl`库。这篇基础操作篇将...

    基于python的使用pyautocad处理excel自动化脚本设计

    本主题“基于Python的使用pyautocad处理excel自动化脚本设计”聚焦于结合Python与PyAutoCAD库来实现Excel数据的自动化处理,这在数据驱动的工作流程中非常常见,特别是对于工程和设计团队。 PyAutoCAD是Python的一...

Global site tag (gtag.js) - Google Analytics