%global _empty_manifest_terminate_build 0 Name: python-pyxlsx Version: 1.1.3 Release: 1 Summary: please add a summary manually as the author left a blank one License: MIT URL: https://github.com/fortfall/pyxlsx Source0: https://mirrors.nju.edu.cn/pypi/web/packages/fa/8d/ad6f4e0290c90827e7d4fa69f459b5cd4527ce72509bc2a29fa68259c426/pyxlsx-1.1.3.tar.gz BuildArch: noarch Requires: python3-openpyxl Requires: python3-pycel %description ### Introduction A package to read/write xlsx worksheet like dictionary, based on openpyxl. ### Installation * from pip ```python pip install pyxlsx ``` * download package and run setup.py ```python python setup.py install ``` ### Usage * Create a new xlsx file and write to it ```python from pyxlsx import new_xlsx with new_xlsx(filename) as wb: ws = wb.create_sheet('sheet1') # some operations # or wb = new_xlsx() ws = wb.creat_sheet('sheet1') # create a new sheet with name 'sheet1' # some operations wb.save(filename) ``` * Open an existing xlsx file ```python from pyxlsx import open_xlsx with open_xlsx(filename) as wb: ws1 = wb.active # get active sheet ws2 = wb['sheet2'] # some operations # or wb = open_xlsx(filename) ws = wb['sheet2'] # some operations wb.save() # to save as another file wb.save(another_filename) ``` * Append rows to a worksheet ```python ws = wb['sheet1'] ws.append( ["", "", "str('Unknown')", "float(4.5)", "int(500)"] ) # keys can only be of type str content1 = { 'id': '001', 'productName': 'pork', 'productType': 'meat', 'price': 2.5, 'weight': 1000, } content2 = { 'id': '002', 'productName': 'beef', 'productType': 'meat', 'price': 4.5, 'weight': 1000, 'origin': 'Australia' } # header is auto-generated from keys of the dict the first time append_by_header is called. ws.append_by_header(content1) # new header name will be append to header if append_header is True (default value) ws.append_by_header(content2) # below is the result of writing operation ``` ||A|B|C|D|E|F| |:---:|:---:|:---:|:---:|:---:|:---:|:---| |1|||str('Unknown')|float(30)|int(0)| |2|id|productName|productType|price|weight|origin |3|001|pork|meat|2.5|1000| |4|002|beef|meat|4.5|1000|Australia * Read from / write to a worksheet by row Note: if there are duplicate header names, only the first would be used. ```python ws = wb['sheet1'] assert ws.header is None ws.header_row = 2 # set the second row as worksheet header row assert ws.header is not None for row in ws.content_rows: # starting from row just below header row print(row[1]) # row cell value can accessed by column number, if key is of type int print(row['productName']) # row cell value can be accessed by header name, if key is of type of str print(row['price']) if row['productName'] == 'pork': row[1] = '003' # change pork id to '003' row['price'] = 3.5 # change pork price to 3.5 # output as below # '001' # 'pork' # 2.5 # '002' # 'beef' # 4.5 ``` * Read from a worksheet by column ```python ws = wb['sheet1'] ws.header_row = 2 # get a full column column_cells = ws['B'] for c in column_cells: print(c.data) # 'pork', 'beef' # get a content column (containing only cells below header) by header name, # if key is of type str name_column = ws.get_content_column('productName') for c in name_column: print(c.data) # 'pork', 'beef' # get a content column by column number, # if key is of type int name_column = ws.get_content_column(2) for c in name_column: print(c.data) # 'pork', 'beef' ``` * Read cell directly from Worksheet, Header, ContentRow ```python ws = wb['sheet1'] ws.header_row = 2 # access a cell by coordinate (row, column) cell = ws.cell(2, 2) print(cell.data) # 'productName' # access a cell by header name if key is of type str cell = ws.header.cell('productName') print(cell.data) # 'productName' # access a cell by column number cell = ws.header.cell(1) print(cell.data) # 'id' for row in ws.content_rows: cell = row.cell(1) # '001', '002' print(cell.data) cell = row.cell('productName') print(cell.data) # 'pork', 'beef' ``` * Read adjacent cells of a certain cell ```python cell = ws.cell(2, 2) print(cell.top.data) # "str('Unknown')" print(cell.left.data) # 'id' print(cell.right.data) # 'productType' print(cell.bottom.data) # 'pork' for c in cell.vertical: print(c.data) # 'productName', 'pork', 'beef' for c in cell.horizontal: print(c.data) # 'productName', 'productType', 'price', 'weigth', 'origin' ``` %package -n python3-pyxlsx Summary: please add a summary manually as the author left a blank one Provides: python-pyxlsx BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pyxlsx ### Introduction A package to read/write xlsx worksheet like dictionary, based on openpyxl. ### Installation * from pip ```python pip install pyxlsx ``` * download package and run setup.py ```python python setup.py install ``` ### Usage * Create a new xlsx file and write to it ```python from pyxlsx import new_xlsx with new_xlsx(filename) as wb: ws = wb.create_sheet('sheet1') # some operations # or wb = new_xlsx() ws = wb.creat_sheet('sheet1') # create a new sheet with name 'sheet1' # some operations wb.save(filename) ``` * Open an existing xlsx file ```python from pyxlsx import open_xlsx with open_xlsx(filename) as wb: ws1 = wb.active # get active sheet ws2 = wb['sheet2'] # some operations # or wb = open_xlsx(filename) ws = wb['sheet2'] # some operations wb.save() # to save as another file wb.save(another_filename) ``` * Append rows to a worksheet ```python ws = wb['sheet1'] ws.append( ["", "", "str('Unknown')", "float(4.5)", "int(500)"] ) # keys can only be of type str content1 = { 'id': '001', 'productName': 'pork', 'productType': 'meat', 'price': 2.5, 'weight': 1000, } content2 = { 'id': '002', 'productName': 'beef', 'productType': 'meat', 'price': 4.5, 'weight': 1000, 'origin': 'Australia' } # header is auto-generated from keys of the dict the first time append_by_header is called. ws.append_by_header(content1) # new header name will be append to header if append_header is True (default value) ws.append_by_header(content2) # below is the result of writing operation ``` ||A|B|C|D|E|F| |:---:|:---:|:---:|:---:|:---:|:---:|:---| |1|||str('Unknown')|float(30)|int(0)| |2|id|productName|productType|price|weight|origin |3|001|pork|meat|2.5|1000| |4|002|beef|meat|4.5|1000|Australia * Read from / write to a worksheet by row Note: if there are duplicate header names, only the first would be used. ```python ws = wb['sheet1'] assert ws.header is None ws.header_row = 2 # set the second row as worksheet header row assert ws.header is not None for row in ws.content_rows: # starting from row just below header row print(row[1]) # row cell value can accessed by column number, if key is of type int print(row['productName']) # row cell value can be accessed by header name, if key is of type of str print(row['price']) if row['productName'] == 'pork': row[1] = '003' # change pork id to '003' row['price'] = 3.5 # change pork price to 3.5 # output as below # '001' # 'pork' # 2.5 # '002' # 'beef' # 4.5 ``` * Read from a worksheet by column ```python ws = wb['sheet1'] ws.header_row = 2 # get a full column column_cells = ws['B'] for c in column_cells: print(c.data) # 'pork', 'beef' # get a content column (containing only cells below header) by header name, # if key is of type str name_column = ws.get_content_column('productName') for c in name_column: print(c.data) # 'pork', 'beef' # get a content column by column number, # if key is of type int name_column = ws.get_content_column(2) for c in name_column: print(c.data) # 'pork', 'beef' ``` * Read cell directly from Worksheet, Header, ContentRow ```python ws = wb['sheet1'] ws.header_row = 2 # access a cell by coordinate (row, column) cell = ws.cell(2, 2) print(cell.data) # 'productName' # access a cell by header name if key is of type str cell = ws.header.cell('productName') print(cell.data) # 'productName' # access a cell by column number cell = ws.header.cell(1) print(cell.data) # 'id' for row in ws.content_rows: cell = row.cell(1) # '001', '002' print(cell.data) cell = row.cell('productName') print(cell.data) # 'pork', 'beef' ``` * Read adjacent cells of a certain cell ```python cell = ws.cell(2, 2) print(cell.top.data) # "str('Unknown')" print(cell.left.data) # 'id' print(cell.right.data) # 'productType' print(cell.bottom.data) # 'pork' for c in cell.vertical: print(c.data) # 'productName', 'pork', 'beef' for c in cell.horizontal: print(c.data) # 'productName', 'productType', 'price', 'weigth', 'origin' ``` %package help Summary: Development documents and examples for pyxlsx Provides: python3-pyxlsx-doc %description help ### Introduction A package to read/write xlsx worksheet like dictionary, based on openpyxl. ### Installation * from pip ```python pip install pyxlsx ``` * download package and run setup.py ```python python setup.py install ``` ### Usage * Create a new xlsx file and write to it ```python from pyxlsx import new_xlsx with new_xlsx(filename) as wb: ws = wb.create_sheet('sheet1') # some operations # or wb = new_xlsx() ws = wb.creat_sheet('sheet1') # create a new sheet with name 'sheet1' # some operations wb.save(filename) ``` * Open an existing xlsx file ```python from pyxlsx import open_xlsx with open_xlsx(filename) as wb: ws1 = wb.active # get active sheet ws2 = wb['sheet2'] # some operations # or wb = open_xlsx(filename) ws = wb['sheet2'] # some operations wb.save() # to save as another file wb.save(another_filename) ``` * Append rows to a worksheet ```python ws = wb['sheet1'] ws.append( ["", "", "str('Unknown')", "float(4.5)", "int(500)"] ) # keys can only be of type str content1 = { 'id': '001', 'productName': 'pork', 'productType': 'meat', 'price': 2.5, 'weight': 1000, } content2 = { 'id': '002', 'productName': 'beef', 'productType': 'meat', 'price': 4.5, 'weight': 1000, 'origin': 'Australia' } # header is auto-generated from keys of the dict the first time append_by_header is called. ws.append_by_header(content1) # new header name will be append to header if append_header is True (default value) ws.append_by_header(content2) # below is the result of writing operation ``` ||A|B|C|D|E|F| |:---:|:---:|:---:|:---:|:---:|:---:|:---| |1|||str('Unknown')|float(30)|int(0)| |2|id|productName|productType|price|weight|origin |3|001|pork|meat|2.5|1000| |4|002|beef|meat|4.5|1000|Australia * Read from / write to a worksheet by row Note: if there are duplicate header names, only the first would be used. ```python ws = wb['sheet1'] assert ws.header is None ws.header_row = 2 # set the second row as worksheet header row assert ws.header is not None for row in ws.content_rows: # starting from row just below header row print(row[1]) # row cell value can accessed by column number, if key is of type int print(row['productName']) # row cell value can be accessed by header name, if key is of type of str print(row['price']) if row['productName'] == 'pork': row[1] = '003' # change pork id to '003' row['price'] = 3.5 # change pork price to 3.5 # output as below # '001' # 'pork' # 2.5 # '002' # 'beef' # 4.5 ``` * Read from a worksheet by column ```python ws = wb['sheet1'] ws.header_row = 2 # get a full column column_cells = ws['B'] for c in column_cells: print(c.data) # 'pork', 'beef' # get a content column (containing only cells below header) by header name, # if key is of type str name_column = ws.get_content_column('productName') for c in name_column: print(c.data) # 'pork', 'beef' # get a content column by column number, # if key is of type int name_column = ws.get_content_column(2) for c in name_column: print(c.data) # 'pork', 'beef' ``` * Read cell directly from Worksheet, Header, ContentRow ```python ws = wb['sheet1'] ws.header_row = 2 # access a cell by coordinate (row, column) cell = ws.cell(2, 2) print(cell.data) # 'productName' # access a cell by header name if key is of type str cell = ws.header.cell('productName') print(cell.data) # 'productName' # access a cell by column number cell = ws.header.cell(1) print(cell.data) # 'id' for row in ws.content_rows: cell = row.cell(1) # '001', '002' print(cell.data) cell = row.cell('productName') print(cell.data) # 'pork', 'beef' ``` * Read adjacent cells of a certain cell ```python cell = ws.cell(2, 2) print(cell.top.data) # "str('Unknown')" print(cell.left.data) # 'id' print(cell.right.data) # 'productType' print(cell.bottom.data) # 'pork' for c in cell.vertical: print(c.data) # 'productName', 'pork', 'beef' for c in cell.horizontal: print(c.data) # 'productName', 'productType', 'price', 'weigth', 'origin' ``` %prep %autosetup -n pyxlsx-1.1.3 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pyxlsx -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 21 2023 Python_Bot - 1.1.3-1 - Package Spec generated