如何用python?提取excel中的上标或下标数据;

如何用python?提取excel中的上标或下标数据;,python,excel,format,data-processing,Python,Excel,Format,Data Processing,我想用python在excel中分析化学公式数据。因为excel数据已经有了区分电荷或原子序数的格式,所以我不需要从头解释它。但是当我用python阅读它时遇到了一些困难 pandas,xlrd,openpyxl,甚至python docx,他们都无法读取上标数据。这一切都被视为纯文本。而且上标或下标的格式似乎无法直接匹配 如果不从头解释,我如何才能完成任务?无论是python还是其他任何数据处理工具都可以。表达复杂公式的常用方法是使用LaTex,python有一个名为PyLaTex的模块 但

我想用python在excel中分析化学公式数据。因为excel数据已经有了区分电荷或原子序数的格式,所以我不需要从头解释它。但是当我用python阅读它时遇到了一些困难

pandas
xlrd
openpyxl
,甚至
python docx
,他们都无法读取上标数据。这一切都被视为纯文本。而且上标或下标的格式似乎无法直接匹配


如果不从头解释,我如何才能完成任务?无论是python还是其他任何数据处理工具都可以。

表达复杂公式的常用方法是使用LaTex,python有一个名为PyLaTex的模块

但是,它可能无法读取Mircrosoft格式的公式。您可能需要搜索翻译程序/网站,将*.doc中编写的公式翻译为Latex脚本。-即

我认为您需要用Python打开文件,格式化并保存到excel中,然后重新进行分析。 这就是我的意思。 首先打开文件并将每一行放入列表中 然后做一个for循环,将不同的下标和上标转换成可以区分的东西。下面是一个示例代码

    import csv
    csvfile = open('file.csv')
    reader = csv.DictReader(csvfile)

    dictList = []
    
    for line in reader: dictList.append(line)
    
    csvfile.close()

# Making the modifications inside our list, which 
   contains
# a dictionary for each line in the CSV.

for line in dictList:
    for key in line:
        line[key] = line[key].replace('\\', '\\\\')
        line[key] = line[key].replace('#', '\\#')
        line[key] = line[key].replace('_', '\\_')
        line[key] = line[key].replace('&', '\\&')

    # Writing the new lines to a new file.
    
    with open('output.csv', 'w') as outfile:
        fieldnames = ['Field 1', 'Field 2', 'Field 3']
        writer = csv.DictWriter(outfile, 
     fieldnames=fieldnames)
    
        writer.writeheader()
        for line in dictList:
         writer.writerow(line)

我认为这是不可能的。如果在工作簿其他地方的公式中使用单元格的值,即使Excel本身也不会保留上标。这是因为Excel认为上标是单元格上的标记,而不是数据上的标记。你试过用unicode读取数据吗?可用的python latex解析器很少。谢谢,但是excel工作表是我要标准化的原始数据,我需要从excel中提取数据。
Ag_{2}C_{2}O_{4}+2e═2Ag+C{2}O{4}{2-}
这对解决我的问题非常有帮助,我可以继续工作:)