Пример #1
0
 def load_cells(self, boundsheet, shared_table):
     row_cnt = 0
     with self._xlsb_workbook.get_sheet_by_name(boundsheet.name) as sheet:
         for row in sheet:
             if row_cnt > 1048576:
                 break
             row_cnt = row_cnt + 1
             column_cnt = 0
             for cell in row:
                 if column_cnt > 16384:
                     break
                 tmp_cell = Cell()
                 tmp_cell.row = cell.row_num + 1
                 tmp_cell.column = Cell.convert_to_column_name(cell.col + 1)
                 tmp_cell.value = cell.value
                 tmp_cell.sheet = boundsheet
                 formula_str = Formula.parse(cell.formula)
                 if formula_str._tokens:
                     try:
                         tmp_cell.formula = '=' + formula_str.stringify(
                             self._xlsb_workbook)
                     except NotImplementedError as exp:
                         print('ERROR({}) {}'.format(exp, str(cell)))
                     except Exception:
                         print('ERROR ' + str(cell))
                 if tmp_cell.value is not None or tmp_cell.formula is not None:
                     boundsheet.cells[
                         tmp_cell.get_local_address()] = tmp_cell
                 column_cnt = column_cnt + 1
Пример #2
0
import sys
import time
from pyxlsb2 import open_workbook
from pyxlsb2.formula import Formula

a = time.time()
print('Opening workbook... ', end='', flush=True)
with open_workbook(sys.argv[1]) as wb:
    d = time.time() - a
    print('Done! ({} seconds)'.format(d))
    for s in wb.sheets:
        print('Reading sheet {}...\n'.format(s), end='', flush=True)
        a = time.time()

        with wb.get_sheet_by_name(s.name) as sheet:
            for row in sheet:
                for cell in row:
                    formula_str = Formula.parse(cell.formula)
                    if formula_str._tokens:
                        try:
                            print(formula_str.stringify(wb))
                        except NotImplementedError as exp:
                            print('ERROR({}) {}'.format(exp, str(cell)))
                        except Exception:
                            print('ERROR ' + str(cell))
        d = time.time() - a
        print('Done! ({} seconds)'.format(d))
Пример #3
0
 def test_stringify(self):
     self.assertEqual(Formula([StringPtg('Hello "World"')]).stringify(self.wb), '"Hello ""World"""')
     self.assertEqual(Formula([IntegerPtg(1), IntegerPtg(2), AddPtg()]).stringify(self.wb), '1+2')
     self.assertEqual(Formula([Ref3dPtg(1, 2, 3, False, False, Ref3dPtg.ptg)]).stringify(self.wb), 'Sheet2!R3C4')