Change csv export file enclosed-by sign

Excel另存为CSV (comma separator)格式时,不带字段的限定符(enclosed-by sign)。

因为magento import csv前特别提醒,限定符不得为空,所以我就想着怎么把Excel CSV指定限定符为双引号。可以左找右找Excel本身不能设置限定符(连修改默认的逗号分隔符都很麻烦,要在Excel以外,Windows Control Panel->Regional Setting那里修改),倒有人提供了一个宏代码,用起来也很方便。

将Excel文件导出为逗号分隔、双引号限定的CSV文件的宏代码如下:

Sub CSVFile()

Dim SrcRg As Range
Dim CurrRow As Range
Dim CurrCell As Range
Dim CurrTextStr As String
Dim ListSep As String
Dim FName As Variant
FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")

If FName <> False Then
ListSep = Application.International(xlListSeparator)
If Selection.Cells.Count > 1 Then
Set SrcRg = Selection
Else
Set SrcRg = ActiveSheet.UsedRange
End If
Open FName For Output As #1
For Each CurrRow In SrcRg.Rows
CurrTextStr = ""
For Each CurrCell In CurrRow.Cells
CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep
Next
While Right(CurrTextStr, 1) = ListSep
CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
Wend
Print #1, CurrTextStr
Next
Close #1
End If
End Sub

wordpress在不同域名间的迁移

忙乎了一天终于把这个blog从另外一个域名、另外一个服务器迁移过来了。迁移的过程是比较痛苦的,因为我一开始把迁移想得太简单了。这怪我想当然,前几天wordpress版本升级给我的印象太方便了,只要把文件一股脑上传就可以,因此我以为迁移也只要把文件一股脑拷贝、数据一股脑导出再导入就可以啦。

我一股脑做好迁移以后,敲入新网址,满怀信心期待出现的页面没出现,确切地说是一片空白(我原以为最糟的情况也就是出现带有一些broken links的页面再作调整)。费了好久才查出是memory_limit值太低,这时我已经把wordpress那几个table的数据 delete/import了好几个来回了。

虽然这次迁移费了点时间,但总算有了经验:不要相信那些所谓wordpress data migration插件,甚至连wordpress内置的export/import也不好用(export/import仅适用于给数据做备份和恢复)。wordpress(2.3.1版)内置的export/import至少有以下缺点:

  1. 不能自动转换域名
  2. 不能自动转换document root
  3. 不能导入option
  4. import采用web upload,自然文件大小受到upload_max_filesize限制。
  5. import后个别category出现了两次(原因不明)
  6. manage uploads丢失了thumbnails的链接

我认为最好的办法是,把原数据库里的数据导出成sql格式,用文本编辑器在这个sql文件里做两次查找和替换,新老域名和新旧document root各做一次(文本格式就是好啊,给人一种看得见摸得着的感觉,踏实)。然后在新数据库导入这个sql文件就可以。只要网站的directory structure保持不变,我相信这就是wordpress blog迁移要做的全部工作。

等待新特性:导入、导出、重置Start Page的设置

先看看我的Apps Start Page:

my igoogle on apps

Google确实是天才,无论Apps,Gadget,或是iGoogle都是巨作;Start Page把这些组合在一起,巨作中的巨作。但是美中还是有不足:未登录用户的Start Page setting保存在Cookie里,删掉Cookie就可以重置Start Page;登录用户的Start Page setting肯定是保存在google的某个数据库里,google暂未为导入、导出、重置Start Page的设置提供任何方便。

我已经发了一个suggestion给google team:

Recently I deployed Start Page of Apps. It is marvellous to combine the functionality of igoogle and apps! Each signed-in account can have different igoogle setting, that’s great. However, we can’t copy igoogle setting between accounts. We can’t reset the setting to the default either. That means if the apps domain administrator updates the start page, no one can get automatically updated.

We will be very grateful to see this suggested feature come true. Thank you!

希望不久的将来就能看到这个new feature。