【OOXML】シートの行とセルの位置について

OOXMLの定義

ttkcd.hatenablog.com

 

row要素、c要素の位置を表す属性は、どちらも任意で必ずしも指定されているわけではない。
属性が指定されている場合と、されていない場合を実際にxmlファイルを修正してExcelファイルで開いて確認してみる。
結論としては、属性が指定されていない場合は、各要素の配列のようの扱いになる(Stylesパーツのindexのようなもの)。
以下のコードは、1つめのrow要素にr属性(5)を指定して、2つめのrow要素にはr属性を指定しない。
2つめのrow要素の子要素のc要素の1つめのr属性に(B6)を指定して、以降のc要素にはr属性を指定しない。
Excelで確認すると、1つめのrow要素が5行目に表示され、2つめのrow要素が6行目に表示された。
2つめのrow要素のc要素の1つめのr属性が2列目に表示され、以降のc要素がそれぞれ続く形で表示された。

<row r="5" >
    <c><v>50</v></c>
    <c><v>51</v></c>
    <c><v>52</v></c>
    <c><v>53</v></c>
</row>
<row>
    <c r="B6"><v>60</v></c>
    <c><v>61</v></c>
    <c><v>62</v></c>
    <c><v>63</v></c>
</row>
    
結果

f:id:TTKCD:20210710180151p:plain

Excel結果