生命之氢

Hailong Hao's Laboratory

Excel 文本批量替换器

| 评论

Excel 文本批量替换器 头图

是的,在我司产品经理的逼迫下我用 AppleScript 写了个批量处理 Excel 的 App。主要功能是针对某一文件夹下所有的 Excel 文件,批量「查找和替换」文本,严格对应区分大小写。可能各位在平时处理 Excel 文件也会有用,分享给大家。

(下载地址在文末)

我想说的一些话

这个应用虽然简单,但对我来说很重要,因为这不仅仅是我写的第一个应用,也印证着我一直以来对于编程的态度:我们每个人都应该学一点编程,并不是为了写出多么高大上的应用,而是为了实实在在解决一些个人遇到的非普遍性的小问题。

事实上,我原本也没有想过要把它打包成一个 App,但想到既然我有这样的需求,那么也会有其他人有同样的需求。于是,这就变成了我的第一个完整打包的 Mac 应用。

而能打包成 App 也要得益于一直以来 @ibuick @tinyfool @人字拖 2 号 的耳濡目染——主要是耳濡,让我了解到哪怕是 AppleScript 这样的傻瓜式脚本程序也可以打包成完整的应用,在此对他们表示感谢。

关于图标

Excel 文本批量替换器 Icon

也许有人看过昨天 @人字拖 2 号 的「爆料」,上面这款应用的图标是一根用 Sketch 制作的冰棍,这根冰棍其实是我模仿 dribbble 上 Oliver Ker 先生的作品,当时是作为设计练习作业做的,因为版权问题,我正式发出来的版本并没有使用这个图标。而是重新绘制了一个图标。

新图标的形状是一个修正液的瓶子,暗示了软件「用新的替换旧的」的意思,X 的图标表示 Excel 文件,而 Correction Script 的标签来自英文表示修正液的词 Correction Fluid。

坦白讲,绘制这个图标并没有花多长时间,但让我有信心能够绘制出这样一个图标,我想感谢 @周楷雯 Kevin,是他的 Producter 这本书让我觉得其实绘制这些 Logo 没有我想象的那么难。

注意事项

程序使用 AppleScript 编写,主要思路是让系统自动依次打开一个文件夹下所有 Excel,并按规则替换。由于没有用到直接读写 Excel 的包,为避免出错,运行过程中最好不要做其他事情。尽管如此,已经可以节约我很长时间了,昨天我处理 90 个文件,大约用了 6 分钟(比上不足,比下有余)。

下载地址:Excel 文本批量替换器

好久不见

| 评论

这个博客很久没有更新了,前段时间因为 Kloudsec 关停,所以网站访问出现了一些问题。最近突然想起了搭建这个博客时认真的劲头,想想放弃挺可惜的,于是花了一点时间修正了一些解析中的问题,切回了 http 协议。虽然这样可能会降低搜索引擎的抓取权重,但暂时也没有精力去再找一个靠谱的 https 服务。

另外,考虑到 App.net 很久不更新了,删除了原来页面中「断章」这个标签。

在我没有更新的这段时间,我看到自己写的教程给很多朋友提供了帮助,收获了不少感谢,我感到非常开心。

在目前看来,这里将会作为我的一个实验性博客继续存在,虽然自己并非程序员,但我热爱一切酷的东西,编程即是如此。

Octopress 教程目录

| 评论

经过近十天的撰写,这份被自己当做备忘录的 Octopress 教程终于算是告一段落了,相信遵照这份教程可以生成一个不错的 Octopress 独立博客。当然正如在教程里说的,对于主题的修改是「永远的第二步」,所以我不敢说这份教程已经完成,又或者说永远都不可能完成。姑且把完成的部分的目录放在这里,供大家参考。

Octopress 精益修改 (5)

| 评论

1. 侧边栏显示分类目录

随着文章数量的增多,为了更方便检索,我们需要对文章进行整理。整理的方式一般分为两种:1. 「分类目录」,这是一种收敛式的整理方式,也是 Octopress 的默认方式;2. 「标签」,这是一种扩散式的整理方式,使用这种方式的典范是 Tumblr 轻博客。

对我个人而言,搭建这个新博客主要是为了存放自己撰写的与理工(目前看来是 IT 和经济学)相关的文章,主题比较收敛,本身文章也不多,所以采用了 Octopress 默认的「分类目录」整理方式。

Octopress 精益修改 (4)

| 评论

1. CodeRay Block 代码块插件

用 Octopress 写博客的很多朋友需要在博客内容当中添加代码块,毕竟这是一个「为黑客而生的博客框架」。Octopress 除了可以使用 Markdown 语言默认的代码块实现方式之外,本身也集成了很强大的代码块 (Code Block) 插件,按照官方的说明调用即可,比如:

节选自比特币 Python API
1
2
3
4
5
rv = conn.validateaddress(foo)
if rv.isvalid:
    print "The address that you provided is valid"
else:
    print "The address that you provided is invalid, please correct"

官方的 Code Block 插件支持语法高亮,本身的显示效果也非常不错,可以与博客大背景的深色形成呼应。但如果你的文章中出现大量的代码块,黑色背景看起来可能不那么舒服。这时,你可能想要使用浅色系的代码块,比如:

节选自比特币 Python API
rv = conn.validateaddress(foo)
if rv.isvalid:
    print "The address that you provided is valid"
else:
    print "The address that you provided is invalid, please correct"

Octopress 精益修改 (3)

| 评论

在主题的框架部署完成之后,我们的博客已经可以算是一个五脏俱全的个人网站了,下一步网站变成什么样子,主要看我们往里面加什么样的内容。但在你发表几篇文章之后,你可能就会发现,文字的呈现并不美观,这就需要我们去修改网站和文字的样式。当然,我们必须承认,由于各种各样的原因,同一个网站在不同的操作系统或者不同的浏览器下显示是完全不一样的。作为一个小博客这站长,只能尽我们所能去修改样式,但真的没有精力去保证适应所有的操作系统和所有的浏览器(尤其是 IE)。

Octopress 精益修改 (2)

| 评论

通过前面的教程,我们成功搭建起了自己的 Octopress 博客,并对博客框架做了基本配置。这已经可以算是一个真正意义上的个人博客了:1. 确实可以在互联网上看到;2. 文章有自己的署名;3. 甚至可以撰写有公式的科技文章。

但我们对于网站的个性化修改并没有结束:首先,网站整体显得很粗糙,很多必要的信息,比如作者简介,并没有呈现;其次,虽然我们对基本配置中涉及到的部分做了有限的汉化,但也正因为我们做了部分汉化,其余的英文部分显得更加不伦不类。针对这些问题,本文将继续我们「精益修改」之路。

Octopress 精益修改 (1)

| 评论

1. 永远的第二步

通过「Octopress 搭建流程 – Github Pages」,我们搭建好了自己的 Octopress 博客并发布了第一篇文章。

但这只是我们 Octopress 博客之旅的第一步,说白了,我们不过是把别人已经做好的程序成功的安装到了网上,并且试运行了一下。但博客终究是个讲究个性化的地方,个性化就意味着需要自己动手进行修改。我们的第二步就是对安装好的 Octopress 做个性化修改。

Octopress 搭建流程 – Github Pages

| 评论

本文介绍如何在 Github Pages 上搭建 Octopress 博客,主要针对 IT 外行人士。科普文章用词未必精确,行家里手请不要太在意。主要参考 Octopress 官网安装教程。
对了,我用的是 Mac,Windows 我不熟,我只知道 IE 浏览器。

1. 为什么是 Octopress & Github Pages?

在做任何事情之前最好先问个为什么,尽管很多情况下未必有答案,但这个做法绝对有好处。用 Octopress 搭建博客,并托管到 Github Pages,撇除一些个人因素之外,我想还有以下几点原因:

Octopress 每个人都该为自己打造专属的写作环境

| 评论

我的博客史

每次搭建新博客都想把自己写博客的历史回顾一遍,这次索性来个彻底回顾,直接从最早接触互联网说起吧。

如果没有记错,2000 年在家乡的一个网吧第一次接触互联网。当我试着把从杂志上抄来的瓦斯科达伽马足球俱乐部的官方首页输入 IE 地址栏时,我并不相信五分钟后竟然能将页面显示出来。