我是Python新手。如何用python标准库创建excel文件?
我用putty来管理一些服务器。我想用Python在每台服务器上创建一个Excel文件,为此,我认为如果我可以使用某些命令(如ssh ip "python abc.py"
)来创建该文件。可以编写一个bash脚本来管理所有服务器。这是我遇到的麻烦:
服务器不能使用互联网。
而且它不允许使用任何第三方库。当安装linux(redhat 6.5)时,python中是否有可用于立即创建Excel的库? 请帮助我,谢谢。
我是Python新手。如何用python标准库创建excel文件?
我用putty来管理一些服务器。我想用Python在每台服务器上创建一个Excel文件,为此,我认为如果我可以使用某些命令(如ssh ip "python abc.py"
)来创建该文件。可以编写一个bash脚本来管理所有服务器。这是我遇到的麻烦:
服务器不能使用互联网。
而且它不允许使用任何第三方库。当安装linux(redhat 6.5)时,python中是否有可用于立即创建Excel的库? 请帮助我,谢谢。
不幸的是这是不可能的了。创建Excel文件可能需要在客户端运行两个部分:
Python标准库不包括Office产品的包装。相反,他们提供逗号分隔值文件的商品,这些文件很容易用Excel读取。
Openpyxl项目与Open XML format一起使用,然后不需要安装Office。引用它的文档:
Openpyxl是一个Python库用于读取和写入Excel 2010中 XLSX/XLSM/XLTX/XLTM文件。
它是由于Python的Office Open XML格式不支持从 本地读取/写入现有库而产生的。
然后你只需要用这个包更新你的Python安装程序就可以创建电子表格。
如果您的服务器无法访问Internet,但接受外部媒体进行安装,那么你就可以在另一台机器上下载source并将其存储在可移动介质上,安装介质服务器上,然后解压缩并使用python setup.py
安装接口:
tar -xvzf openpyxl.tar.gz /somepath
cd /somepath/to/installer
python setup.py install
它适用于Debian(没有办公室安装,使用管状的源):
>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> wb.save('test.xlsx')
产生一个空的电子表格用Excel可读。
如果您使用win32com,则不需要python包装。 –
@DavidZemens,更新了我的答案,减少了限制。也许你可以用这个解决方案提出另一个答案。顺便说一句:是win32com另一个通用包装? – jlandercy
它可能不是...但你的主要观点仍然存在:即使使用win32com库,你仍然需要安装Excel/Office。 –
其实有一种方法。如果你有一个空的excel文件,你可以打开它作为一个zip文件,这是内容
.
├── [Content_Types].xml
├── docProps
│ ├── app.xml
│ ├── core.xml
│ └── custom.xml
├── _rels
└── xl
├── calcChain.xml
├── charts
│ ├── chart1.xml
│ ├── chart2.xml
│ ├── colors1.xml
│ ├── colors2.xml
│ ├── _rels
│ │ ├── chart1.xml.rels
│ │ └── chart2.xml.rels
│ ├── style1.xml
│ └── style2.xml
├── drawings
│ ├── drawing1.xml
│ ├── drawing2.xml
│ └── _rels
│ ├── drawing1.xml.rels
│ └── drawing2.xml.rels
├── printerSettings
│ └── printerSettings1.bin
├── _rels
│ └── workbook.xml.rels
├── sharedStrings.xml
├── styles.xml
├── theme
│ └── theme1.xml
├── workbook.xml
└── worksheets
├── _rels
│ ├── sheet1.xml.rels
│ └── sheet2.xml.rels
├── sheet1.xml
└── sheet2.xml
在这个文件我有寿其比较的工作簿的标签页。
的workbook.xml,在XL目录,具有在其上的片材的名称和它看起来像这样:
<sheets><sheet name="Test1" sheetId="1" r:id="rId1"/><sheet name="Test2" sheetId="2" r:id="rId2"/></sheets>
和每个片材(1/2).XML,在工作表中的目录包含列/行
,它看起来像这样:
<dimension ref="A1:J1352"/>
<sheetViews>
<sheetView topLeftCell="A3" workbookViewId="0">
<selection activeCell="F28" sqref="F28"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="14.4" x14ac:dyDescent="0.3"/>
<cols>
<col min="1" max="1" width="27.6640625" customWidth="1"/>
<col min="2" max="2" width="15.109375" customWidth="1"/>
<col min="3" max="3" width="14.6640625" customWidth="1"/>
<col min="4" max="4" width="15.33203125" customWidth="1"/>
<col min="7" max="7" width="13.6640625" customWidth="1"/>
</cols>
<sheetData>
<row r="1" spans="1:10" x14ac:dyDescent="0.3">
<c r="A1" t="s">
<v>1</v>
</c>
</row>
<row r="2" spans="1:10" x14ac:dyDescent="0.3">
<c r="B2" t="s">
<v>4</v>
</c>
<c r="C2" t="s">
<v>5</v>
</c>
<c r="D2" t="s">
<v>6</v>
</c>
</row>
<row r="3" spans="1:10" x14ac:dyDescent="0.3">
<c r="A3" s="1">
<v>42969.681041666663</v>
</c>
<c r="B3">
<v>892.76</v>
</c>
<c r="C3">
<v>138.62</v>
</c>
<c r="D3">
<v>138.62</v>
</c>
</row>
<row r="4" spans="1:10" x14ac:dyDescent="0.3">
<c r="A4" s="1">
<v>42969.68173611111</v>
</c>
<c r="B4">
<v>954.83</v>
</c>
<c r="C4">
<v>88.97</v>
</c>
<c r="D4">
<v>88.97</v>
</c>
<c r="G4" s="4"/>
<c r="H4" s="3" t="s">
<v>9</v>
</c>
<c r="I4" s="3" t="s">
<v>10</v>
</c>
<c r="J4" s="3" t="s">
<v>11</v>
</c>
</row>
<row r="5" spans="1:10" x14ac:dyDescent="0.3">
<c r="A5" s="1">
<v>42969.682430555556</v>
</c>
<c r="B5">
<v>875.17</v>
</c>
<c r="C5">
<v>94.14</v>
</c>
<c r="D5">
<v>94.14</v>
</c>
<c r="G5" s="3" t="s">
<v>2</v>
</c>
<c r="H5" s="3">
<f>AVERAGE(B3:B1352)</f>
<v>699.96431851851924</v>
</c>
<c r="I5" s="3">
<f>MAX(B3:B1352)</f>
<v>1270.3399999999999</v>
</c>
<c r="J5" s="3">
<f>MIN(B3:B1352)</f>
<v>177.93</v>
</c>
</row>
</sheetData>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
<pageSetup orientation="portrait" r:id="rId1"/>
<drawing r:id="rId2"/>
</worksheet>
所以,如果你能正确地使用标签修改XML文件,你可以使用文本编辑器和压缩程序修改或创建一个Excel工作表
令人惊叹!因此,excel是一个zip文件...这是一个很好的尝试方法,但有点复杂,谢谢! –
你不能使用CSV? –
对不起,老板想要excel,TT –
Excel可以打开CSV文件... –