Colorful Life2010

Tag: excel | 记录数: 7
Python 处理 Excel
Weather:12~20度,多云

 使用Python对Excel进行操作,然后把结果生成一个新的Excel表格,使用到了xlrdpyExcelerator两个库。

 

简单的介绍一下这两个库,先说xlrd,这个库读Excel比较方便,各种方法使用起来也挺方便:

bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开Excel表格中的一个sheet,sheets得到的是一个list,存放所有的sheet。
sh.nrows是该sheet中的行数,知道这个后就可以使用for循环来读所有的单元格了:
sh.row(i)[3]这个就代表第i行的第4列。

再看看pyExcelerator,这个用起来有点别扭:

sheets = parse_xls('result.xls')
先打开一个表格,sheets是一个list,包含了所有表格的内容,每一项就是一个sheet,而每个sheet是二元tuple,第一个是该sheet的名字,第二个是一个dict,dict的key是一个二元组,表示单元格的坐标,如(0,0),第一行第一列。
从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。

写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
 

写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。

转载于:可可熊的窝

用VBA实现EXCEL单元格输入即保护功能
Weather:春天来了,百花还未花

由于Tracy要求财务上用的EXCEL表要实现的功能:当前SHEET页上的某些单元格或行或列,录入数据的人,只有录入一次,录入完则立即保护起来,如果想修改,只能有密码的人才能修改。

从这可以衍生出更具体的要求:

  1. 输入一次即保护起来,想再修改必须输入密码(即原始要求)
  2. 未输入的空白区(保护作用区,即将会被保护的)可以随便操作
  3. 输入密码后,只能修改当前选中的单元格,不能随意修改其它被保护的单元格
  4. 要修改被保护的单元格,弹出输入密码框
  5. 输入密码验证后,拉选(多选)单元格区域,被保护的还是不能被删除
  6. 被保护起来的单元格要特殊显示
  7. 保护状态下,拉选(多选)时不会触发密码提示框
带宏功能的EXCEL在IIS上生成报表时出错
Weather:晴,北风4-5级转5-6级,(-8~-5)℃

大显的生产ERP二期正在验收,由于很多地方要生成EXCEL报表,并且明细数据和统计结果都想要,这样就只好使用EXCEL模板。像比较简单的一些东西,使用公式即可。但是对大量数据的分类汇总统计,用公式的话,会导致打开报表的EXCEL机器死机或是非常慢,所以采用的EXCEL自带的透视图功能。于是进行测试,在自己这边测试得好好的,但只要拿到大显的服务器上就一个劲出错,出一次错就造成一个EXCEL的IUSER用户的死进程,刷了一阵后十几二十个死进程,并且这些进程杀不掉,使用管理员用户也杀不掉(对于WIN2000),只有重启服务器才能解决。另外,即使加了错误处理,如on error resume next(for asp),try...catch...(for asp.net)都不好用,照样出现死进程。

工作表(Worksheet)基本操作应用示例
Weather:晴转阴,南风3-4级转北风3-4级,(1~8)℃

在编写代码时,经常要引用工作表的名字、知道工作表在工作簿中的位置、增加工作表、删除工作表、复制工作表、移动工作表、重命名工作表,等等。下面介绍与此有关及相关的一些属性和方法示例。
 


[示例04-01]增加工作表(Add方法)
Sub AddWorksheet()
   MsgBox "在当前工作簿中添加一个工作表"
   Worksheets.Add
   MsgBox "在当前工作簿中的工作表sheet2之前添加一个工作表"
   Worksheets.Add before:=Worksheets("sheet2")
   MsgBox "在当前工作簿中的工作表sheet2之后添加一个工作表"
   Worksheets.Add after:=Worksheets("sheet2")
   MsgBox "在当前工作簿中添加3个工作表"...

工作簿(Workbook)基本操作应用示例(一)
Weather:晴转阴,南风3-4级转北风3-4级,(1~8)℃

Workbook对象代表工作簿,而Workbooks集合则包含了当前所有的工作簿。下面对Workbook对象的重要的方法和属性以及其它一些可能涉及到的方法和属性进行示例介绍,同时,后面的示例也深入介绍了一些工作簿对象操作的方法和技巧。
 


示例03-01:创建工作簿(Add方法)
[示例03-01-01]
Sub CreateNewWorkbook1()
   MsgBox "将创建一个新工作簿."
   Workbooks.Add
End Sub...