使用Lua处理Excel文件

我计划学习Lua来满足我的桌面脚本编写需求。 我想知道是否有任何文档可用,也想知道标准库中是否有所需的所有东西。

原文链接 https://stackoverflow.com/questions/1565838

点赞
stackoverflow用户15795
stackoverflow用户15795

你应该尝试使用Lua for Windows——一个为Windows编写的Lua脚本语言的集成环境,它提供了“电池包含在内”的功能。

http://luaforwindows.luaforge.net/

它包含了LuaCOM库,你可以从中访问Excel COM对象。

尝试查看LuaCOM文档,其中有一些Excel示例:

http://www.tecgraf.puc-rio.br/~rcerq/luacom/pub/1.3/luacom-htmldoc/

我只用过它来做一些简单的事情。这里有一个示例可以帮你入门:

-- test.lua
require('luacom')
excel = luacom.CreateObject("Excel.Application")
excel.Visible = true
wb = excel.Workbooks:Add()
ws = wb.Worksheets(1)

for i=1, 20 do
    ws.Cells(i,1).Value2 = i
end
2009-10-14 12:09:12
stackoverflow用户190981
stackoverflow用户190981

更复杂的代码示例,用于Lua与Excel的交互:

require "luacom"

excel = luacom.CreateObject("Excel.Application")

local book  = excel.Workbooks:Add()
local sheet = book.Worksheets(1)

excel.Visible = true

for row=1, 30 do
  for col=1, 30 do
    sheet.Cells(row, col).Value2 = math.floor(math.random() * 100)
  end
end

local range = sheet:Range("A1")

for row=1, 30 do
  for col=1, 30 do
    local v = sheet.Cells(row, col).Value2

    if v > 50 then
        local cell = range:Offset(row-1, col-1)

        cell:Select()
        excel.Selection.Interior.Color = 65535
    end
  end
end

excel.DisplayAlerts = false
excel:Quit()
excel = nil

另一个示例,可以添加一个图表。

require "luacom"

excel = luacom.CreateObject("Excel.Application")

local book  = excel.Workbooks:Add()
local sheet = book.Worksheets(1)

excel.Visible = true

for row=1, 30 do
  sheet.Cells(row, 1).Value2 = math.floor(math.random() * 100)
end

local chart = excel.Charts:Add()
chart.ChartType = 4 -- xlLine

local range = sheet:Range("A1:A30")
chart:SetSourceData(range)
2009-10-16 01:02:17