当前位置:首页 » 编程软件 » excel高级脚本

excel高级脚本

发布时间: 2024-02-25 19:34:41

‘壹’ 如何用EXCEL的VBA脚本编写程序删除空行和空列

这段VBA代码的作用是删除Excel工作簿中所有工作表中的空行和空列。代码包含了三个子过程:

  • Sub 删除所有空行和空列()
    这个子过程首先遍历工作簿中的每一个工作表。对于每一个工作表,它执行以下操作:

  • 取消合并单元格,以便在删除空行和空列时不会留下空白的单元格。

  • 调用 DeleteEmptyRows 子过程,删除所有空行。

  • 调用 DeleteEmptyColumns 子过程,删除所有空列。

  • 自动调整行高和列宽,以适应数据。

  • Sub DeleteEmptyRows()
    这个子过程用于删除工作表中的空行。它首先确定最后一行的行号,然后从最后一行卜橡开始向上遍历,逐行检查该行是否为空行。如果该行为空行,则删除该行。通过使用 CountA 函数来确定行中是否存在任何非空单元格。

  • Sub DeleteEmptyColumns()
    这个子过程用于删除液嫌工作表中的空列闹弊手。它首先确定最后一列的列号,然后从最后一列开始向左遍历,逐列检查该列是否为空列。如果该列为空列,则删除该列。也是通过使用 CountA 函数来确定列中是否存在任何非空单元格。

  • 需要注意的是,由于该代码对每个工作表都进行了操作,如果工作簿中有大量工作表或者数据量很大,可能会影响代码的执行效率。

‘贰’ 怎么制作excel按键精灵脚本

方法/步骤

1
首先来建立一个新的Excel文档,在桌面上点击右键,选择【新建】-【Excel工作表】,命名为【新手学员】。

2
现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据。

3
打开按键精灵软件,点击【新建】,进入我的脚本界面,再点击进入【全部命令】。

在【全部命令】中选择【插件命令】-【office办公文档插件】-【打开Excel文档】。

在命令的下面可以看到命令的详细设置,点击【路径】。

在弹出窗口中选择【新手学员】的Excel文档,点击打开。

可以在命令参数中看到引用的文档,点击插入就可以插入对应的命令脚本。

继续在文档中写入新的数据,选择命令【writeXls 写入Excel文档单元格】,选择对应的单元格的行和列,输入要写入单元格的内容【"序号"】,点击插入。

在脚本界面可以看到新插入的代码。

根据类似的格式,可以添加其它代码,一共写入3行4列的单元格内容。

最后选择【closeXls 关闭文档】,点击插入对应的代码。

修改脚本属性的描述和保存的脚本文件名。保存脚本后按【F10】进行脚本调试。

脚本执行完成后,再次打开这个Excel文档,可以看到刚才设置的数据已经成功写入了。

‘叁’ 怎样在Excel中使用python脚本

一、使用工具:excel、python

二、使用方法和步骤:

1、先安装python2.7,然后配置环境变量,保证python在该环境中,打开开始菜单,找到计算机,然后右键单击它,选择【属性】

三、注意事项:切记不要勾选python,如果通过这种方式安装python,你原先安装的python就无法使用了。

‘肆’ 怎样在Excel中使用python脚本

一、读excel表
读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd)。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:
1、导入模块

复制代码代码如下:
import xlrd

2、打开Excel文件读取数据

复制代码代码如下:
data = xlrd.open_workbook('excel.xls')

3、获取一个工作表
① table = data.sheets()[0] #通过索引顺序获取
② table = data.sheet_by_index(0) #通过索引顺序获取
③ table = data.sheet_by_name(u'Sheet1')#通过名称获取
4、获取整行和整列的值(返回数组)

复制代码代码如下:
table.row_values(i)
table.col_values(i)

5、获取行数和列数

复制代码代码如下:
table.nrows
table.ncols

6、获取单元格

复制代码代码如下:
table.cell(0,0).value
table.cell(2,3).value

就我自己使用的时候觉得还是获取cell最有用,这就相当于是给了你一个二维数组,余下你就可以想怎么干就怎么干了。得益于这个十分好用的库代码很是简洁。但是还是有若干坑的存在导致话了一定时间探索。现在列出来供后人参考吧:

1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好
2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,网络过一些解决方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个呢不能问题还没解决。
二、写excel表
写excel表要用到xlwt模块,官网下载(http://pypi.python.org/pypi/xlwt)。大致使用流程如下:
1、导入模块

复制代码代码如下:
import xlwt

2、创建workbook(其实就是excel,后来保存一下就行)

复制代码代码如下:
workbook = xlwt.Workbook(encoding = 'ascii')

3、创建表

复制代码代码如下:
worksheet = workbook.add_sheet('My Worksheet')

4、往单元格内写入内容

复制代码代码如下:
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')

5、保存

复制代码代码如下:
workbook.save('Excel_Workbook.xls')

由于我的需求比较简单,所以这上面没遇到什么问题,唯一的就是建议还是用ascii编码,不然可能会有一些诡异的现象。

当然xlwt功能远远不止这些,他甚至可以设置各种样式之类的。附上一点例子

复制代码代码如下:

Examples Generating Excel Documents Using Python's xlwt

Here are some simple examples using Python's xlwt library to dynamically generate Excel documents.
Please note a useful alternative may be ezodf, which allows you to generate ODS (Open Document Spreadsheet) files for LibreOffice / OpenOffice. You can check them out at:http://packages.python.org/ezodf/index.html
The Simplest Example
import xlwt
workbook = xlwt.Workbook(encoding = 'ascii')
worksheet = workbook.add_sheet('My Worksheet')
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
workbook.save('Excel_Workbook.xls')
Formatting the Contents of a Cell
import xlwt
workbook = xlwt.Workbook(encoding = 'ascii')
worksheet = workbook.add_sheet('My Worksheet')
font = xlwt.Font() # Create the Font
font.name = 'Times New Roman'
font.bold = True
font.underline = True
font.italic = True
style = xlwt.XFStyle() # Create the Style
style.font = font # Apply the Font to the Style
worksheet.write(0, 0, label = 'Unformatted value')
worksheet.write(1, 0, label = 'Formatted value', style) # Apply the Style to the Cell
workbook.save('Excel_Workbook.xls')
Attributes of the Font Object
font.bold = True # May be: True, False
font.italic = True # May be: True, False
font.struck_out = True # May be: True, False
font.underline = xlwt.Font.UNDERLINE_SINGLE # May be: UNDERLINE_NONE, UNDERLINE_SINGLE, UNDERLINE_SINGLE_ACC, UNDERLINE_DOUBLE, UNDERLINE_DOUBLE_ACC
font.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT # May be: ESCAPEMENT_NONE, ESCAPEMENT_SUPERSCRIPT, ESCAPEMENT_SUBSCRIPT
font.family = xlwt.Font.FAMILY_ROMAN # May be: FAMILY_NONE, FAMILY_ROMAN, FAMILY_SWISS, FAMILY_MODERN, FAMILY_SCRIPT, FAMILY_DECORATIVE
font.charset = xlwt.Font.CHARSET_ANSI_LATIN # May be: CHARSET_ANSI_LATIN, CHARSET_SYS_DEFAULT, CHARSET_SYMBOL, CHARSET_APPLE_ROMAN, CHARSET_ANSI_JAP_SHIFT_JIS, CHARSET_ANSI_KOR_HANGUL, CHARSET_ANSI_KOR_JOHAB, CHARSET_ANSI_CHINESE_GBK, CHARSET_ANSI_CHINESE_BIG5, CHARSET_ANSI_GREEK, CHARSET_ANSI_TURKISH, CHARSET_ANSI_VIETNAMESE, CHARSET_ANSI_HEBREW, CHARSET_ANSI_ARABIC, CHARSET_ANSI_BALTIC, CHARSET_ANSI_CYRILLIC, CHARSET_ANSI_THAI, CHARSET_ANSI_LATIN_II, CHARSET_OEM_LATIN_I
font.colour_index = ?
font.get_biff_record = ?
font.height = 0x00C8 # C8 in Hex (in decimal) = 10 points in height.
font.name = ?
font.outline = ?
font.shadow = ?
Setting the Width of a Cell
import xltw
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
worksheet.write(0, 0, 'My Cell Contents')
worksheet.col(0).width = 3333 # 3333 = 1" (one inch).
workbook.save('Excel_Workbook.xls')
Entering a Date into a Cell
import xlwt
import datetime
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
style = xlwt.XFStyle()
style.num_format_str = 'M/D/YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0
worksheet.write(0, 0, datetime.datetime.now(), style)
workbook.save('Excel_Workbook.xls')
Adding a Formula to a Cell
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
worksheet.write(0, 0, 5) # Outputs 5
worksheet.write(0, 1, 2) # Outputs 2
worksheet.write(1, 0, xlwt.Formula('A1*B1')) # Should output "10" (A1[5] * A2[2])
worksheet.write(1, 1, xlwt.Formula('SUM(A1,B1)')) # Should output "7" (A1[5] + A2[2])
workbook.save('Excel_Workbook.xls')
Adding a Hyperlink to a Cell
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
worksheet.write(0, 0, xlwt.Formula('HYPERLINK("http://www.google.com";"Google")')) # Outputs the text "Google" linking to http://www.google.com
workbook.save('Excel_Workbook.xls')
Merging Columns and Rows
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
worksheet.write_merge(0, 0, 0, 3, 'First Merge') # Merges row 0's columns 0 through 3.
font = xlwt.Font() # Create Font
font.bold = True # Set font to Bold
style = xlwt.XFStyle() # Create Style
style.font = font # Add Bold Font to Style
worksheet.write_merge(1, 2, 0, 3, 'Second Merge', style) # Merges row 1 through 2's columns 0 through 3.
workbook.save('Excel_Workbook.xls')
Setting the Alignment for the Contents of a Cell
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
alignment = xlwt.Alignment() # Create Alignment
alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
style = xlwt.XFStyle() # Create Style
style.alignment = alignment # Add Alignment to Style
worksheet.write(0, 0, 'Cell Contents', style)
workbook.save('Excel_Workbook.xls')
Adding Borders to a Cell
# Please note: While I was able to find these constants within the source code, on my system (using LibreOffice,) I was only presented with a solid line, varying from thin to thick; no dotted or dashed lines.
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
borders = xlwt.Borders() # Create Borders
borders.left = xlwt.Borders.DASHED # May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR, MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED, MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
borders.right = xlwt.Borders.DASHED
borders.top = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DASHED
borders.left_colour = 0x40
borders.right_colour = 0x40
borders.top_colour = 0x40
borders.bottom_colour = 0x40
style = xlwt.XFStyle() # Create Style
style.borders = borders # Add Borders to Style
worksheet.write(0, 0, 'Cell Contents', style)
workbook.save('Excel_Workbook.xls')
Setting the Background Color of a Cell
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
pattern = xlwt.Pattern() # Create the Pattern
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
pattern.pattern_fore_colour = 5 # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
style = xlwt.XFStyle() # Create the Pattern
style.pattern = pattern # Add Pattern to Style
worksheet.write(0, 0, 'Cell Contents', style)
workbook.save('Excel_Workbook.xls')
TODO: Things Left to Document
- Panes -- separate views which are always in view
- Border Colors (documented above, but not taking effect as it should)
- Border Widths (document above, but not working as expected)
- Protection
- Row Styles
- Zoom / Manification
- WS Props?
Source Code for reference available at: https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/

‘伍’ 有哪些方法可以在excel中直接使用python脚本

在excel中直接使用python脚本可以使用vba触链缓发,具体做法如下:

1、创建python脚本如下:

importtime

defhello(name):

return"Hello,"+name+"!"

printhello("World")

#延时关闭windows控制闹裤台,使得用户可以看到运行结果

time.sleep(150);

2、在excel中打开vba编辑器,编写触发入口:

3、运行棚弯模宏,效果如下:

Hello,World

‘陆’ 怎样在Excel中使用python脚本

在Excel中准备调用的python代码:
def merge_sort_unique(lists):

s = set()

for L in lists:

s.update(L)

return sorted(s)
任意在本地建立一个目录,并保存这个代码并命名为Methods.py。我们一步步看看如何从Excel的工作表中如何调用这个脚本。打开Excel,填写一些数据以便提供python脚本处理,并保持这个表格于刚才的python脚本在同一目录下。你的工作表应该如下:

现在,备调用python脚本,创建一个新的模块(Insert | Mole)并敲以下VBA代码:


Function msu(lists As Range)

Set methods = PyMole("Methods", AddPath:=ThisWorkbook.Path)

Set result = PyCall(methods, "merge_sort_unique", PyTuple(lists.Value2))

msu = WorksheetFunction.Transpose(PyVar(result))

ExitFunction

EndFunction

热点内容
安卓电脑和苹果系统哪个好 发布:2024-09-08 11:35:59 浏览:860
改进bp算法 发布:2024-09-08 11:22:23 浏览:977
酷狗怎么清除缓存 发布:2024-09-08 11:17:29 浏览:155
开发板主板交叉编译 发布:2024-09-08 11:12:59 浏览:167
手机学c语言软件 发布:2024-09-08 11:12:03 浏览:281
java培训课程有那些 发布:2024-09-08 11:11:30 浏览:652
旧笔记本如何装安卓系统 发布:2024-09-08 11:10:20 浏览:953
安卓怎么关闭蓝牙自动连接 发布:2024-09-08 10:58:12 浏览:11
tsm服务器修改ip地址 发布:2024-09-08 10:21:06 浏览:615
共享云源码 发布:2024-09-08 10:01:10 浏览:397