No, it results in a corrupt Excel file. =(

On Tue, Feb 11, 2014 at 4:28 AM, Kevin Houlihan <[email protected]>wrote:

> Hi Jessica,
>
> In the original code you posted it looks like you had already saved the
> file to disk before you went about trying to print it. Did this result in a
> valid file that you could open in excel?
>
> Regards,
> Kevin
>
>
> On Tue, Feb 11, 2014 at 12:21 AM, Jessica Le <[email protected]>wrote:
>
>> I dont quite understand why I would want to encode/decode the xls files
>> either, but for some reason the upload method from the webpy library throws
>> the UnicodeDecodeError when I try to print out the values from the uploaded
>> Excel file. The upload file method works for text files fine though. I
>> investigated the UnicodeDecode error on stackoverflow, and it seemed like
>> that was the way to go...
>>
>> All I want to do is let the user be able to upload an Excel file using
>> REST. It shouldn't be this hard :(
>>
>>
>> On Mon, Feb 3, 2014 at 7:58 PM, James Tyra <[email protected]> wrote:
>>
>>> Jessica just so you know I can not possibly imagine a reason to run
>>> pythons "encode" or "decode" functions on an uploaded Excel file or ANY
>>> file. These functions interpret the input as a text stream, modifying it in
>>> various ways to make it human readable. This will absolutely corrupt an
>>> excel file or any non txt file.
>>>
>>> In order to process Microsoft xls or xlsx files with Python you are
>>> going to need some type of special library.
>>>
>>> I recommend you take a step back for a second and explain to us what
>>> your trying to accomplish.
>>> On Feb 3, 2014 8:52 PM, "Jessica Le" <[email protected]> wrote:
>>>
>>>> So after doing more research/testing, it seems like the built in
>>>> function for file upload only seems to work flawlessly for txt files. Is
>>>> there a library out there for other kinds of files?
>>>>
>>>> On Friday, January 17, 2014 3:58:15 PM UTC-6, Jessica Le wrote:
>>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm trying to create an application that lets users upload an .xls
>>>>> file that I then take and feed that uploaded.xls file into my program 
>>>>> which
>>>>> reads and parses it. However, I am having issues with the utf-8 encoding
>>>>> for the Excel files. I have searched everywhere on stackoverflow and
>>>>> google, but none of them are working.
>>>>>
>>>>> Here is my code:
>>>>>
>>>>> def POST(self):
>>>>>         x = web.input(calendar_file={}, ref_id='')
>>>>>         if x:
>>>>>         ref_id = (x.ref_id if x.ref_id else "")
>>>>>         filepath=x.calendar_file.filename # replaces the
>>>>> windows-style slashes with linux ones.
>>>>>         fn=filepath.split('/')[-1] # splits the and chooses the last
>>>>> part (the filename
>>>>>         filename = 
>>>>> "%s/Users/jl98567/Documents/xMatters_calendar_app/test/"
>>>>> + fn
>>>>>         fullpath = os.path.join('c:', filename % (ref_id))
>>>>>         content = x["calendar_file"].file.read()
>>>>>         with open(fullpath, 'w') as f_out:
>>>>>         if not f_out:
>>>>>         raise Exception("Unable to open %s for writing. " %
>>>>> (fullpath))
>>>>>         f_out.write(content)
>>>>>         print str(x['calendar_file'].value.encode('utf8','ignore'))
>>>>>         raise web.seeother('/upload?ref_id=%s&filename=%s' % (ref_id,
>>>>> filename))
>>>>>
>>>>>
>>>>> Here is the error;
>>>>>
>>>>> <type 'exceptions.UnicodeDecodeError'> at / 'ascii' codec can't
>>>>> decode byte 0xd0 in position 0: ordinal not in range(128) Python
>>>>> C:\Users\jl98567\Documents\xMatters_calendar_app\schedule_web.py in
>>>>> POST, line 45 WebPOST http://localhost:8080/
>>>>> line 45 is: print str(x['calendar_file'].value.
>>>>> encode('utf8','ignore'))
>>>>>
>>>>> I have tried decoding it and then encoding it similar to this one:
>>>>>
>>>>> print str(x['calendar_file'].value.decode('utf-8').encode('utf8',
>>>>> 'ignore'))
>>>>>
>>>>>  but still doesn't work.
>>>>>
>>>>> Any suggestions?
>>>>>
>>>>> Thanks much!
>>>>>
>>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "web.py" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>>
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/webpy.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>  --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "web.py" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/webpy/_i64Ym_Ubxg/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>>
>>> To post to this group, send email to [email protected].
>>> Visit this group at http://groups.google.com/group/webpy.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "web.py" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/webpy.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "web.py" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/webpy/_i64Ym_Ubxg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/webpy.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/webpy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to