Member Avatar

dumicom

Hi, is there a simple way to convert the xls file to txt file to fit my program's code.

import matplotlib.pyplot as plt

x = []
y = []
t = []

fig = plt.figure()
rect = fig.patch
rect.set_facecolor('#31312e')

**readFile = open('data.xls', 'r')
sepFile = readFile.read().split('\n')
readFile.close()**

for idx, plotPair in enumerate(sepFile):
    if plotPair in '. ':
       # skip. or space
       continue
    if idx > 1:  # to skip the first line
        xAndY = plotPair.split(',')
        time_string = xAndY[0]
        t.append(time_string)
        y.append(float(xAndY[1]))

ax1 = fig.add_subplot(1, 1, 1, axisbg='blue')
ax1.plot(t, y, 'c', linewidth=3.3)

plt.title('IRRADIANCE')
plt.xlabel('TIME')

plt.show()

There are python modules to read xls files (such as xlrd). However in your case, it may be easier to convert the file to csv on the command line: if you have Libreoffice installed on your computer, you can use

soffice --headless --convert-to csv data.xls

in a terminal to convert data.xls into data.csv. (In windows, the options with -- may take a single dash -). Make sure there is no data.csv before running the command!

The conversion command line above can also be called from python if you want.