包位于xlrd的顶部,它提供了一组单元解析器,使您的导入更容易。

xlsimport的Python项目详细描述


安装

按常规安装软件包,使用命令

pip install xlsimport

包需要xlrddateutils

用法

xlsimport目前只提供api,没有演示,也没有默认设置。但开始使用它很简单。

首先,您需要创建xlsimport.models.Format类的后代,例如:

class SubjectFormat(Format):
    cells = (
        {'name': 'Name', 'parsers': (TextCellToStringParser,)},
        {'name': 'Hours', 'parsers': (TextCellToIntParser, NumberCellToIntParser,)},
        {'name': 'Short name', 'parsers': (TextCellToStringParser,)},
    )

    def to_python(self, data_row):
        return {
            'name': data_row[0],
            'short_name': re.sub(r'[0-9-]+', '', data_row[2]),
            'hours': data_row[1],
        }

在这段代码中,Name列只能包含文本单元格,并且它们用字符串表示。 第二列Hours可能包含文本单元格或数字单元格。它们被表示为整数。注意解析器 适用于订单。

如果要跳过列,请给parsersxlsimport.models.dummy_parsers。 如果单元格必须为空,则在这种情况下有blank_parsers值。

接下来,您应该创建知道如何处理数据的类(创建或更新记录)。 您还可能希望将其放入类似django命令的类中。

下面是我的示例:

...

class Command(BaseCommand):

    ...

    def handle(self, *args, **options):
        source_filename = args[0]
        source_file = open(source_filename, 'r')
        descriptor, name = tempfile.mkstemp()
        os.fdopen(descriptor, 'wb').write(source_file.read())
        doc = xlrd.open_workbook(name, formatting_info=True)
        format_doc = SubjectFormat(doc)

        for index, parsed_row in enumerate(format_doc):
            process_row(index, parsed_row)

process_row这里是一个从上面的to_python方法获取字典的函数。

小费。我创建了一个gist使用linux dialog的好例子。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java很难找到时间复杂性   性能如何查看我的Java进程现在正在做什么?   即使添加了jar文件,eclipse也无法编译java项目?   java JOOQ强制类型将POSTGRES的BigInteger转换为BigDecimal   具有适当复数的Java国际化(i18n)   Java:修复内存泄漏   Java主类实例访问   java在片段中被压回运行主活动中的函数   java在没有ant的情况下从控制台构建eclipse项目   java有可能不升级到JDK 9吗?   每个文件的java增量   服务器和客户端的tcp客户端数量因Java NIO而异   java如何膨胀合并   有没有工具可以检查我在Java中使用的包中的方法?   java限制google使用改型将查询自动完成放在一个国家   java如何按值而不是位置将项目添加到ADTSorted列表   java我想更改单击的任何按钮的大小   java为什么我们可以在类加载之前使用新操作符   继承,子类,使用超级打印。Java中的print()