示例#1
0
def test_add_local_named_range():
    wb = Workbook()
    new_sheet = wb.create_sheet()
    named_range = NamedRange('test_nr', [(new_sheet, 'A1')])
    named_range.scope = new_sheet
    wb.add_named_range(named_range)
    dest_filename = os.path.join(TMPDIR, 'local_named_range_book.xlsx')
    wb.save(dest_filename)
示例#2
0
def test_equal_string():
    test_filename = _get_test_filename()
    wb = Workbook(optimized_write=True)
    ws = wb.create_sheet()
    ws.append(['', '', None, '='])
    wb.save(test_filename)

    wb2 = load_workbook(test_filename, True)
    last_cell = list(wb2.worksheets[0].iter_rows())[0][-1]
    assert last_cell.data_type == 's'
示例#3
0
def test_append_after_save():

    test_filename = _get_test_filename()

    wb = Workbook(optimized_write=True)
    ws = wb.create_sheet()
    ws.append(['hello'])

    wb.save(test_filename)
    os.remove(test_filename)

    ws.append(['hello'])
示例#4
0
def test_write_regular_float():

    float_value = 1.0 / 3.0
    book = Workbook()
    sheet = book.get_active_sheet()
    sheet.cell("A1").value = float_value
    dest_filename = os.path.join(TMPDIR, 'float_read_write_issue.xlsx')
    book.save(dest_filename)

    validate_archive(dest_filename)
    test_book = load_workbook(dest_filename)
    test_sheet = test_book.get_active_sheet()

    eq_(test_sheet.cell("A1").value, float_value)
示例#5
0
def test_dump_sheet():

    test_filename = _get_test_filename()

    wb = Workbook(optimized_write=True)

    ws = wb.create_sheet()

    letters = [get_column_letter(x + 1) for x in xrange(20)]

    expected_rows = []

    for row in xrange(20):

        expected_rows.append(
            ['%s%d' % (letter, row + 1) for letter in letters])

    for row in xrange(20):

        expected_rows.append([(row + 1) for letter in letters])

    for row in xrange(10):

        expected_rows.append([
            datetime(2010, ((x % 12) + 1), row + 1)
            for x in range(len(letters))
        ])

    for row in xrange(20):

        expected_rows.append(
            ['=%s%d' % (letter, row + 1) for letter in letters])

    for row in expected_rows:

        ws.append(row)

    wb.save(test_filename)

    wb2 = load_workbook(test_filename)

    ws = wb2.worksheets[0]

    for ex_row, ws_row in zip(expected_rows[:-20], ws.rows):

        for ex_cell, ws_cell in zip(ex_row, ws_row):

            eq_(ex_cell, ws_cell.value)

    os.remove(test_filename)
示例#6
0
def test_write_regular_date():

    today = datetime.datetime(2010, 1, 18, 14, 15, 20, 1600)

    book = Workbook()
    sheet = book.get_active_sheet()
    sheet.cell("A1").value = today
    dest_filename = os.path.join(TMPDIR, 'date_read_write_issue.xlsx')
    book.save(dest_filename)

    validate_archive(dest_filename)
    test_book = load_workbook(dest_filename)
    test_sheet = test_book.get_active_sheet()

    eq_(test_sheet.cell("A1").value, today)
示例#7
0
def test_dump_sheet_title():

    test_filename = _get_test_filename()

    wb = Workbook(optimized_write=True)

    ws = wb.create_sheet(title='Test1')

    wb.save(test_filename)

    wb2 = load_workbook(test_filename)

    ws = wb2.get_sheet_by_name('Test1')

    eq_('Test1', ws.title)
示例#8
0
def test_open_too_many_files():

    test_filename = _get_test_filename()

    wb = Workbook(optimized_write=True)

    for i in range(
            200
    ):  # over 200 worksheets should raise an OSError ('too many open files')

        wb.create_sheet()

    wb.save(test_filename)

    os.remove(test_filename)
示例#9
0
 def dump_workbook():
     wb = Workbook(optimized_write=True)
     ws = wb.create_sheet()
     ws.append(range(30))
     wb.save(filename=StringIO())