0

コマンド$cellsItem 2 A {SomeText}は、セルA2にテキストを設定せず、代わりにセルA1にテキストを割り当てます。なぜそのように振る舞うのかについての考えはありますか?

              set application [::tcom::ref createobject "Excel.Application"]
              set XlFileFormat(xlCSV) [expr 6]
              set workbooks [$application Workbooks]
              set workbook [$workbooks Add]
              $application DisplayAlerts False
              set worksheets [$workbook Worksheets]
              set worksheet [$worksheets Item [expr 1]]
              set cells [$worksheet Cells]
            $cells Item 2 A {Range}


              $workbook SaveAs {c:\test.csv} $XlFileFormat(xlCSV)      
              $application Quit
4

1 に答える 1

1

さて、ここに説明があります:CSVに保存するとき、Excelは(仮想化された)シートグリッド内の「バウンディングボックス」を形成するデータだけを保存するようです。つまり、最初の行のセルのデータを変更していないため、保存されません。

この単純なプログラム(WSH用のJScript):

var app = new ActiveXObject("Excel.Application");
var wbs = app.Workbooks;
var wb  = wbs.Add;
var wss = wb.Worksheets;
var ws  = wss.Item(1);
var cells = ws.Cells;

app.DisplayAlerts = false;

cells.Item(2, "B") = "B2";
cells.Item(2, "C") = "C2";
cells.Item(3, "B") = "B3";
cells.Item(3, "C") = "C3";

wb.SaveAs("foo.csv", 6);
app.Quit();

シートの左上隅から1列1行オフセットされた長方形のブロックに配置された4つのセルを設定すると、次のCSVファイルが生成されます。

B2,C2
B3,C3
于 2012-04-06T17:39:30.530 に答える