ooxml

Artifact [871b86577f]
Login

Artifact [871b86577f]

Artifact 871b86577f1602025f28387b50110c3b31fbb16496a24b1bee2738b394dd2a47:


#!/bin/sh
#\
exec tclsh8.6 "$0" "$@"

set auto_path [linsert $auto_path 0 ..]
if {[catch {package require ooxml}]} {
  source ../ooxml.tcl
}

source array.tcl

set spreadsheet [::ooxml::xl_write new -creator {Alexander Schöpe}]
if {[set sheet [$spreadsheet worksheet {Tabelle 1}]] > -1} {
  set center [$spreadsheet style -horizontal center]
  set date [$spreadsheet style -numfmt [$spreadsheet numberformat -datetime]]
  set decimal [$spreadsheet style -numfmt [$spreadsheet numberformat -decimal -separator -red]]
  set text [$spreadsheet style -numfmt [$spreadsheet numberformat -string]]

  $spreadsheet column $sheet -width 30 -index 1
  $spreadsheet column $sheet -style $decimal -index 4
  $spreadsheet column $sheet -style $date -width [::ooxml::CalcColumnWidth 16]

  $spreadsheet autofilter $sheet 0,0 0,6
  $spreadsheet freeze $sheet C2

  set lastRow -1
  foreach name [lsort -dictionary [array names data]] {
    lassign [split $name ,] row col
    if {$row != $lastRow} {
      set lastRow $row
      $spreadsheet row $sheet
    }
    switch -- $col {
      2 {
	$spreadsheet cell $sheet $data($name) -index $col -string
      }
      default {
	$spreadsheet cell $sheet $data($name) -index $col -globalstyle
      }
    }
  }
}
$spreadsheet write writeRowsAutoIncr.xlsx
$spreadsheet destroy