Linux脚本从Excel中提取信息以创建用户

时间:2012-09-30 20:03:30

标签: linux perl

现在,我不得不从excel文件中提取信息来创建用户。该脚本需要以下内容。

  • 为员工创建帐户
  • 将他们放入他或她自己的部门小组
  • 使用其员工ID
  • 设置初始密码
  • 发送包含新帐户和密码的电子邮件
  • 在屏幕上显示点的进度

我越来越接近但是我在第8行和第13行看到了EOF错误,请参阅此处的脚本

#!bin/bash
echo $(pwd)/employeesdata.xls
Path=$($pwd)/employeesdata.xls
read Path
if [ -e $Path ];
then
Username= [ grep $(Username) $Path | cut -f1 -d `]'
Password= [ grep $(Password) $Path | cut -f2 -d `]'
useradd -- b $Username
echo $Password | /usr/bin/passwd --stdin $Username
fi
exit


I know it doesn't have the email portion yet.

PS-UserScript:第8行:寻找匹配的'''时意外的EOF PS-UserScript:第13行:语法错误:意外的文件结尾

2 个答案:

答案 0 :(得分:2)

您可以使用Spreadsheet :: ParseExcel执行此任务:

首先确保已安装cpanm

$ cpan App::cpanminus

然后安装模块:

$ cpanm Spreadsheet::ParseExcel

安装后,您将能够使用已复制到问题中的解析脚本。该脚本将一次获取一个单元格,但是一旦读取,您仍需要对这些值执行某些操作。根据电子表格的设置方式(如果您提供样本或至少提供有用的标题),您可能希望在迭代行时收集所需的信息,然后使用数据执行所需的操作收集。

另外,我想指出您解析的文件必须采用较旧的* .xls格式。 ParseExcel不会解析* .xlsx文件,因此如果需要,首先使用Excel以旧格式保存。

答案 1 :(得分:1)

这个简单的python脚本迭代每个单元格/行,我认为这将是一个好的开始:

#!/usr/bin/python

from openpyxl import load_workbook
wb = load_workbook(filename = 'file.xlsx', use_iterators = True)
ws = wb.get_sheet_by_name(name = 'Feuil1') # ws is now an IterableWorksheet

for row in ws.iter_rows(): # it brings a new method: iter_rows()
    for cell in row:
        print cell.internal_value