Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中打开xlsx(来自open office)_Python_Excel_Xlsx - Fatal编程技术网

在python中打开xlsx(来自open office)

在python中打开xlsx(来自open office),python,excel,xlsx,Python,Excel,Xlsx,我又一次尝试用python自动完成书中的一个程序。第266页开始使用excel表格。我导入了我下载的示例表。工作。然后,我用open office创建了自己的工作表,但出现了一个错误。这里有什么问题?文件类型和路径相同,为什么会出现错误 编辑:我下载了最新的openoffice英文版(通常我会用德语)。我右键单击python文件夹并创建了新文件openoffice sheet。它首先创建一个*.odt文件。我打开它。我将文件“另存为”并键入名称123.xlsx。它没有显示可用的xlsx文件类型,

我又一次尝试用python自动完成书中的一个程序。第266页开始使用excel表格。我导入了我下载的示例表。工作。然后,我用open office创建了自己的工作表,但出现了一个错误。这里有什么问题?文件类型和路径相同,为什么会出现错误

编辑:我下载了最新的openoffice英文版(通常我会用德语)。我右键单击python文件夹并创建了新文件openoffice sheet。它首先创建一个*.odt文件。我打开它。我将文件“另存为”并键入名称123.xlsx。它没有显示可用的xlsx文件类型,这就是我直接键入名称的原因。也许这就是问题所在。但是文件保存时没有错误并且可以正常工作,所以我也看不出有什么问题

#code
import openpyxl    
wb = openpyxl.load_workbook('123.xlsx')

#error
Traceback (most recent call last):
  File "C:\...\Python\Python37-32\B&J_Datensatz.py", line 7, in <module>
    wb = openpyxl.load_workbook('123.xlsx')
  File "C:\...\Python\Python37-32\lib\site-packages\openpyxl\reader\excel.py", line 176, in load_workbook
    src = archive.read(ARC_CONTENT_TYPES)
  File "C:\...\Python\Python37-32\lib\zipfile.py", line 1428, in read
    with self.open(name, "r", pwd) as fp:
  File "C:\...\Python\Python37-32\lib\zipfile.py", line 1467, in open
    zinfo = self.getinfo(name)
  File "C:\...\Python\Python37-32\lib\zipfile.py", line 1395, in getinfo
    'There is no item named %r in the archive' % name)
KeyError: "There is no item named '[Content_Types].xml' in the archive"
#代码
导入openpyxl
wb=openpyxl.load_工作簿('123.xlsx')
#错误
回溯(最近一次呼叫最后一次):
文件“C:\…\Python\Python37-32\B&J\u Datensatz.py”,第7行,在
wb=openpyxl.load_工作簿('123.xlsx')
文件“C:\…\Python\Python37-32\lib\site packages\openpyxl\reader\excel.py”,第176行,在load\u工作簿中
src=archive.read(ARC\u内容\u类型)
文件“C:\…\Python\Python37-32\lib\zipfile.py”,第1428行,已读
将self.open(名称“r”,pwd)作为fp:
文件“C:\…\Python\Python37-32\lib\zipfile.py”,第1467行,打开
zinfo=self.getinfo(名称)
文件“C:\…\Python\Python37-32\lib\zipfile.py”,第1395行,在getinfo中
'存档“%name”中没有名为%r的项)
KeyError:“存档中没有名为“[Content\u Types].xml”的项”

我解决了这个问题。
我下载了libreoffice。有了这个程序,我可以直接保存到*.xlsx文件。正如我所说,openoffice不能。谢谢大家的帮助

您的输入文件已损坏

请制作输入文件的新副本并重试


它对我很有用

当你使用libreoffice时,它会自动以ods格式保存。您需要打开文件并将其保存回(此处应用程序自动要求保存在excel中),并确保要保存的.xlsx文件

可能的.xlsx文件副本本质上是一个包含大量文件的ZIP存档。你能试着用常规存档程序解压那个文件吗?您能在该存档中找到引用的文件吗?没有[Content\u Types].xml文件,这是最后一行的错误。仅内容、元、设置和样式(全部*.xml)、manifest.rdf和不带文件类型的mimetype。但我如何才能将其更改为工作文件?“我用open office创建了我自己的工作表”:您的问题并详细解释,您如何使用open office创建它?请提供您提出的解决方案的示例代码。