-4

现在我被这个项目困住了,不得不从 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 行:语法错误:文件意外结束

4

2 回答 2

2

您可以使用 Spreadsheet::ParseExcel 来完成此任务:

首先确保cpanm已安装:

$ cpan App::cpanminus

然后安装模块:

$ cpanm Spreadsheet::ParseExcel

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

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

于 2012-09-30T21:12:08.360 回答
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
于 2012-09-30T20:26:23.233 回答