我有一个奇怪的情况让我们做一个背景。
背景:
我们有一个内部开发的脚本,用于测试企业服务器。该脚本是用Bash编写的。脚本的神奇之处在于dmidecode命令。该脚本在Linux Mint上运行,并通过PXE进行部署。脚本的输出包含有关处理器,内存,系统板和机箱部件号等的硬件信息。此信息始终根据引导映像的设备而变化。然后将所有这些数据压缩成可读格式,然后手动将其添加到Excel电子表格中。 Excel表格分为如第1行:A1(资产编号),B1(数量"始终为1"),C1(制造商),D1(模型),E1(部件编号),F1(序列号),G1(RAM(Mb)),H1(CPU数量),L1(CPU速度(GHZ))
示例数据 列名:
列数据: 第2行:6112,1,HP,Proliant DL580 G2,325134-001,USE247ML97,1024,2,2.8
因此每行代表一个单独的服务器,这些列包含来自我们之前提到的bash脚本的数据。
目标:
好的,所以我的目标是让bash脚本的输出自动附加到存储在本地CIFS文件服务器上的现有工作表。由于脚本是在Linux上启动的,因此Powershell不是一个可行的选择。 我认为Openpyxl可以完成这项工作,但我不知道最好的做法。我知道我将无法修改现有的工作簿。鉴于此,我正在考虑在内存中加载现有文档并使用相同的文件名进行覆盖。另外,我在Openpyxl上看到的所有教程似乎都有静态数据,我没有这种奢侈。这甚至是可能还是只是一个微妙的白日梦?
答案 0 :(得分:1)
对于Excel工作表,我会使用XLSX parser阅读电子表格,XLSX writer根据您阅读的内容制作一个全新的电子表格。但是,对于你似乎在做什么。将STDIO放入CSV会不容易?
例如,
use dosamigos\datepicker\DatePicker;
<?= $form->field($model, 'startdate')->widget(DatePicker::classname(), [
'clientOptions' => [
'format' => 'yyyy-mm-dd'
],
]).DatePicker::widget([
'attribute' => 'end_date',
'name' => 'DATE',
'value' => 'enddate',
'clientOptions' => [
'format' => 'yyyy-mm-dd'
],
]) ?>