summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-10 10:31:35 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-10 10:31:35 +0000
commit72809dac71568ca79ffb632758450fa1879be365 (patch)
tree500bb9dd6a481b1429547ba8ba561ac6aeceac0a
parent6ac16988ee3855778399d8a487a79d1d11b909f3 (diff)
automatic import of python-pyxlsx
-rw-r--r--.gitignore1
-rw-r--r--python-pyxlsx.spec554
-rw-r--r--sources1
3 files changed, 556 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..96c8027 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..b2dbbf6
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+59e6031f18ef7843b85ca1547c7c09fa pyxlsx-1.1.3.tar.gz