82 lines
2.5 KiB
ReStructuredText
82 lines
2.5 KiB
ReStructuredText
Saving multiple sheets as CSV format
|
|
================================================================================
|
|
|
|
.. testcode::
|
|
:hide:
|
|
|
|
>>> from pyexcel_io._compact import OrderedDict, StringIO
|
|
|
|
|
|
Write to multiple sibling csv files
|
|
------------------------------------------------------------------------------
|
|
|
|
|
|
Here's the sample code to write a dictionary to multiple sibling csv files::
|
|
|
|
>>> from pyexcel_io import save_data
|
|
>>> data = OrderedDict() # from collections import OrderedDict
|
|
>>> data.update({"Sheet 1": [[1, 2, 3], [4, 5, 6]]})
|
|
>>> data.update({"Sheet 2": [["row 1", "row 2", "row 3"]]})
|
|
>>> save_data("your_file.csv", data)
|
|
|
|
|
|
Read from multiple sibling csv files
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
Here's the sample code::
|
|
|
|
>>> from pyexcel_io import get_data
|
|
>>> data = get_data("your_file.csv")
|
|
>>> import json
|
|
>>> print(json.dumps(data))
|
|
{"Sheet 1": [[1, 2, 3], [4, 5, 6]], "Sheet 2": [["row 1", "row 2", "row 3"]]}
|
|
|
|
Here is what you would get::
|
|
|
|
>>> import glob
|
|
>>> list = glob.glob("your_file__*.csv")
|
|
>>> json.dumps(sorted(list))
|
|
'["your_file__Sheet 1__0.csv", "your_file__Sheet 2__1.csv"]'
|
|
|
|
|
|
Write multiple sibling csv files to memory
|
|
--------------------------------------------------------------------------------
|
|
|
|
Here's the sample code to write a dictionary of named two dimensional array
|
|
into memory::
|
|
|
|
>>> from pyexcel_io import save_data
|
|
>>> data = OrderedDict()
|
|
>>> data.update({"Sheet 1": [[1, 2, 3], [4, 5, 6]]})
|
|
>>> data.update({"Sheet 2": [[7, 8, 9], [10, 11, 12]]})
|
|
>>> io = StringIO()
|
|
>>> save_data(io, data)
|
|
>>> # do something with the io
|
|
>>> # In reality, you might give it to your http response
|
|
>>> # object for downloading
|
|
|
|
|
|
Read multiple sibling csv files from memory
|
|
--------------------------------------------------------------------------------
|
|
|
|
Continue from previous example::
|
|
|
|
>>> # This is just an illustration
|
|
>>> # In reality, you might deal with csv file upload
|
|
>>> # where you will read from requests.FILES['YOUR_XL_FILE']
|
|
>>> data = get_data(io, multiple_sheets=True)
|
|
>>> print(json.dumps(data))
|
|
{"Sheet 1": [[1, 2, 3], [4, 5, 6]], "Sheet 2": [[7, 8, 9], [10, 11, 12]]}
|
|
|
|
|
|
.. testcode::
|
|
:hide:
|
|
|
|
>>> import os
|
|
>>> if os.path.exists("your_file.csv"):
|
|
... os.unlink("your_file.csv")
|
|
>>> os.unlink("your_file__Sheet 1__0.csv")
|
|
>>> os.unlink("your_file__Sheet 2__1.csv")
|
|
|