使用Excel TextToColumns的JScript

吉尔赫姆·库蒂尼奥(Guilherme Coutinho)

我一直在努力使这一小段代码起作用,但我却失败了。该脚本似乎可以正常运行,但问题是:我需要将第三列(带有数字的列)转换为文本。

查看Excel中的帮助页面,似乎可以使用“ Array(3,2)”部分,但是即使在此函数上尝试使用数字和参数的许多组合,我也无法使其正常工作。

这个问题有帮助吗?

var app = new ActiveXObject("Excel.Application");
app.Visible = true;
var xls = app.Workbooks.Add();

app.Cells(1, 1).Value = "Olympia, WA, 123";
app.Cells(2, 1).Value = "Salem, OR, 3434";
app.Cells(3, 1).Value = "Boise, ID, 342";
app.Cells(4, 1).Value = "Sacramento, CA, 3";

app.Range("A1").EntireColumn.TextToColumns(app.Range("B1"),1,1,false,false,false,true,false,false,Array(3, 2));

切兰·舒穆格维尔(Cheran Shunmugavel)

这里有两个问题。

第一个问题是,您用于FieldInfo参数的格式不正确。该参数应为数组数组。这样的数组的JScript格式如下所示:

// 2 = xlTextFormat
[[1, 2], [2, 2], [3, 2]]
// or, if you prefer using the Array() function:
Array(Array(1, 2), Array(2, 2), Array(3, 2))

(在测试中,我必须指定所有三列。如果您不关心其他列,请将xlGeneralFormat的每个数组的第二项设置为1。)

但是,它不是那么简单,因为Excel与大多数COM对象一样,期望数组为SAFEARRAY结构。在VBScript中,这不是问题,因为其数组是使用SAFEARRAYs实现的,但是在JScript中,数组本质上是一种特殊类型的对象,不容易转换为SAFEARRAY(您可以从Eric Lippert的博客中阅读本文的更多内容如果您需要更多详细信息)。尽管有解决方法,但没有内置方法可以将JScript数组转换为SAFEARRAY(例如,请参见此SO问题)。

第二个问题是您实际上缺少一个参数OtherChar即使文档指出,当这个参数时,才需要其他True,你还是有,因为有在JScript中没有可选参数提供一些价值。在下面的示例中,我扩展了函数调用,并使用文档中的参数名称将每一行标记为清楚:

var app = new ActiveXObject("Excel.Application");
app.Visible = true;
var xls = app.Workbooks.Add();

app.Cells(1, 1).Value = "Olympia, WA, 123";
app.Cells(2, 1).Value = "Salem, OR, 3434";
app.Cells(3, 1).Value = "Boise, ID, 342";
app.Cells(4, 1).Value = "Sacramento, CA, 3";

app.Range("A1").EntireColumn.TextToColumns(
    app.Range("B1"),  // Destination
    1,                // DataType
    1,                // TextQualifier
    false,            // ConsecutiveDelimiter
    false,            // Tab
    false,            // Semicolon
    true,             // Comma
    false,            // Space
    false,            // Other
    '',               // OtherChar
    getSafeArray([
        getSafeArray([1, 2]),
        getSafeArray([2, 2]),
        getSafeArray([3, 2])
    ])                // FieldInfo
);

// ref: https://stackoverflow.com/a/5910730
function getSafeArray(jsArr) {
    var dict = new ActiveXObject("Scripting.Dictionary");
    for (var i = 0; i < jsArr.length; i++)
    dict.add(i, jsArr[i]);
    return dict.Items();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Jscript打印文件

来自分类Dev

使用Jscript调用Android函数

来自分类Dev

无法从嵌入在HTA中的JScript打开Excel

来自分类Dev

Excel VBA 优化宏将文件转换为 .xlsx 然后 TextToColumns

来自分类Dev

使用PHP和JScript的Apostrophes issu

来自分类Dev

有没有办法使用 TextToColumns 进行逗号分隔,只有 2 个值?

来自分类Dev

我可以在vs2010中使用JScript吗

来自分类Dev

使用Jscript创建列表菜单运行时

来自分类Dev

使用jscript隐藏/显示动态表中的行

来自分类Dev

强制在JScript.NET中使用特定的.NET类型?

来自分类Dev

TestComplete / JScript-在对象路径中使用变量

来自分类Dev

不能在函数中使用类作为参数(JScript)

来自分类Dev

使用对象B的JScript Oject A看不到它的功能

来自分类Dev

使用 jscript 级联(从上到下)div 的组织结构

来自分类Dev

在使用TextToColumns时,如何将所有列都转换为Text,默认情况下它是常规格式-使用Powershell

来自分类Dev

使用 selenium 使用 jscript _doPostBack 链接显示“下一个”搜索结果

来自分类Dev

如何使用 jscript OnLoad 事件使用父记录中的数据自动填充 QuickCreate 表单字段?

来自分类Dev

Jscript在开发和测试机器上返回不同的(计算的)结果-使用相同的代码

来自分类Dev

如何使用Razor语法将数组从ViewBag转换为JScript数组?

来自分类Dev

如何在经典ASP中使用JScript替换字符串

来自分类Dev

如何在Windows上使用JScript来创建警报/消息/弹出框?

来自分类Dev

使用Jscript创建日期对象时,在文本框中输入的日期应为dd / MM / yyyy

来自分类Dev

如何使用JScript / JQuery突出显示未填写的表单字段

来自分类Dev

如何使用Razor语法将数组从ViewBag转换为JScript数组?

来自分类Dev

JScript中的异步

来自分类Dev

cscript jscript JSON

来自分类Dev

jscript(pragma)FSO ReadAll

来自分类Dev

JScript中的异步

来自分类Dev

使用JScript.NET将字符串的一部分匹配并存储在变量中

Related 相关文章

  1. 1

    如何使用Jscript打印文件

  2. 2

    使用Jscript调用Android函数

  3. 3

    无法从嵌入在HTA中的JScript打开Excel

  4. 4

    Excel VBA 优化宏将文件转换为 .xlsx 然后 TextToColumns

  5. 5

    使用PHP和JScript的Apostrophes issu

  6. 6

    有没有办法使用 TextToColumns 进行逗号分隔,只有 2 个值?

  7. 7

    我可以在vs2010中使用JScript吗

  8. 8

    使用Jscript创建列表菜单运行时

  9. 9

    使用jscript隐藏/显示动态表中的行

  10. 10

    强制在JScript.NET中使用特定的.NET类型?

  11. 11

    TestComplete / JScript-在对象路径中使用变量

  12. 12

    不能在函数中使用类作为参数(JScript)

  13. 13

    使用对象B的JScript Oject A看不到它的功能

  14. 14

    使用 jscript 级联(从上到下)div 的组织结构

  15. 15

    在使用TextToColumns时,如何将所有列都转换为Text,默认情况下它是常规格式-使用Powershell

  16. 16

    使用 selenium 使用 jscript _doPostBack 链接显示“下一个”搜索结果

  17. 17

    如何使用 jscript OnLoad 事件使用父记录中的数据自动填充 QuickCreate 表单字段?

  18. 18

    Jscript在开发和测试机器上返回不同的(计算的)结果-使用相同的代码

  19. 19

    如何使用Razor语法将数组从ViewBag转换为JScript数组?

  20. 20

    如何在经典ASP中使用JScript替换字符串

  21. 21

    如何在Windows上使用JScript来创建警报/消息/弹出框?

  22. 22

    使用Jscript创建日期对象时,在文本框中输入的日期应为dd / MM / yyyy

  23. 23

    如何使用JScript / JQuery突出显示未填写的表单字段

  24. 24

    如何使用Razor语法将数组从ViewBag转换为JScript数组?

  25. 25

    JScript中的异步

  26. 26

    cscript jscript JSON

  27. 27

    jscript(pragma)FSO ReadAll

  28. 28

    JScript中的异步

  29. 29

    使用JScript.NET将字符串的一部分匹配并存储在变量中

热门标签

归档