diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:31:35 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:31:35 +0000 |
commit | 72809dac71568ca79ffb632758450fa1879be365 (patch) | |
tree | 500bb9dd6a481b1429547ba8ba561ac6aeceac0a | |
parent | 6ac16988ee3855778399d8a487a79d1d11b909f3 (diff) |
automatic import of python-pyxlsx
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pyxlsx.spec | 554 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 556 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyxlsx-1.1.3.tar.gz diff --git a/python-pyxlsx.spec b/python-pyxlsx.spec new file mode 100644 index 0000000..88119eb --- /dev/null +++ b/python-pyxlsx.spec @@ -0,0 +1,554 @@ +%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 +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.3-1 +- Package Spec generated @@ -0,0 +1 @@ +59e6031f18ef7843b85ca1547c7c09fa pyxlsx-1.1.3.tar.gz |