Giter Club home page Giter Club logo

exceljs's People

Contributors

aexei avatar alanscut avatar alubbe avatar antimatter15 avatar artemovskiy avatar autukill avatar ayatkyo avatar brunoargolo avatar cbeltrangomez84 avatar cooltoast avatar dogusev avatar egmen avatar guyonroche avatar hasanlussa avatar holm avatar karabaesh avatar kigh-ota avatar kuzalekon avatar libertynj avatar miketownsend avatar myfreeer avatar nevace avatar papandreou avatar shdd-cjharries avatar siemienik avatar skypesky avatar subhajitdas298 avatar takenspc avatar taoqf avatar zypa13510 avatar

Watchers

 avatar  avatar

exceljs's Issues

[BUG] Excel file lost shape after open by Exceljs

exceljs#1147

https://github.com/kigh-ota/exceljs/compare/master...kigh-ota:exceljs:support-shapes?expand=1

Doc Model

{
  props: {
    type: 'line' | 'rect' | etc.
    fill?: Fill
    outline?: Outline
  }
  range
}

Fill: { type: 'solid', color: {theme: string, argb: string}}
Outline: {}
  • NonVisual Properties
    • 位置・サイズ range
    • hyperlink?
  • Shape Properties
    • 形状 geometry: preset|custom
    • 塗りつぶし fill: no|solid|grad|blip|patt|(grp?)
    • 枠線 outline
      • fill: no|patt|grad
      • dash: preset|custom
      • bevel(?)
      • miter(?)
      • headEnd
      • tailEnd
    • effect(?)
    • 3d(?)
  • Style
    • line reference
    • fill reference
    • effect reference
    • font reference
  • Text Body
    ...

優先度?

  • 形状・サイズ・位置のみを指定して図形を追加できる
    • addShape(properties, range)
    • Properties { geometry: 'rect'|'rountRect' }
  • 図形のsolid fillの色を指定できる
    • schemeClr
    • srgbClr
    • scrgbClr(TextboxのlnRefにデフォルトで付いてるっぽい)
    • そのほか
  • 枠線
    • 太さ
    • ダッシュ
    • 先端
  • LineReference, FillReference を対応する
  • 図形に文字列(改行なくてよい)を置ける
  • 図形にハイパーリンク
  • 文字列に改行、段落
  • 文字のスタイル
    • フォント
    • サイズ
    • 太字/斜体/下線
    • 打ち消し線
  • 回転・反転
  • 文字の配置
  • 形状を全対応 https://learn.microsoft.com/ja-jp/dotnet/api/documentformat.openxml.drawing.shapetypevalues?view=openxml-2.8.1
  • documentation
  • 優先度低い
    • custom geometry
    • gradient fill

Xform Model

  • xdr:sp
    • xdr:nvSpPr
      • xdr:cNvPr
        • a:hlinkClick
        • a:extLst
      • xdr:cNvSpPr
    • xdr:spPr
      • a:xfrm
        • a:off x, y
        • a:ext cx, cy
      • custGeom
      • a:prstGeom
        • a:avLst
      • a:noFill
      • a:solidFill
        • a:schemeClr
          • a:shade
        • a:scrgbClr r,g,b
          • ...many children
        • RgbColorModelHex
        • HslColor
        • SystemColor
        • PresetColor
      • gradFill
      • blipFill
      • pattFill
      • grpFill
      • a:ln
        • a:noFill
        • a:solidFill
          • ...
        • GradientFill
        • PatternFill
        • PresetDash
        • CustomDash
        • Round
        • LineJoinBevel
        • Miter
        • HeadEnd
        • TailEnd
        • ExtensionList
      • effectLst
      • effectDag
      • scene3d
      • sp3d
      • extLst
    • xdr:style
      • a:lnRef
        • a:schemeClr
        • a:scrgbClr
          • ...
        • RgbColorModelHex
        • HslColor
        • SystemColor
        • PresetColor
      • a:fillRef
        • ...
      • a:effectRef
        • ...
      • a:fontRef idx
        • schemeClr
        • a:scrgbClr r,g,b
        • RgbColorModelHex
        • HslColor
        • SystemColor
        • PresetColor
    • xdr:txBody
      • a:bodyPr (many attrs)
        • ...many children
      • a:lstStyle
        • ...many children
      • a:p
        • a:pPr algn
          • ...many children
        • a:r
          • a:rPr
          • a:t
        • a:br
        • a:endParaRPr
        • a:fld

方針

Read

  • XLSX
    • 変更不要そう。DrawingXform をちゃんと呼んでる
  • DrawingXform
    • 変更不要そう。TwoCellAnchorXform, OneCellAnchorXform を呼んでいる
  • TwoCellAnchorXform https://learn.microsoft.com/ja-jp/dotnet/api/documentformat.openxml.drawing.spreadsheet.twocellanchor?view=openxml-2.8.1
    • Parse Shape(sp)
    • 一旦やらない:contentPart, cxnSp, graphicFrame, grpSp
  • OneCellAnchorXform
    • Parse Shape(sp)
  • SpXform
    • Parse itself
    • Parse NonVisualShapeProperties(nvSpPr)
    • Parse ShapeProperties(spPr)
    • Parse ShapeStyle(style)
    • Parse TextBody(txBody)
  • NvSpPrXform
    • Parse itself
    • Parse NonVisualDrawingProperties(cNvPr) *existing
    • Parse NonVisualShapeDrawingProperties(cNvSpPr)
  • SpPrXform
    • すでにある
  • StyleXform
  • TxBodyXform

SpXformの構造

  • SpXform
    • xdr:nvSpPr Add
      • xdr:cNvPr (CVnPrXform)
      • xdr:cNvSpPr Add
    • xdr:spPr (SpPrXform) Add
    • xdr:style Add
      • ...
    • xdr:txBody Add
      • ...

Write

TBW

参考

PicXformの構造

  • PicXform
    • xdr:nvPicPr (NvPicPrXform)
      • xdr:cNvPr (CVnPrXform)
        • a:hlinkClick (HlickClickXform)
        • a:extLst (ExtLstXform)
      • xdr:cNvPicPr (CNvPicPrXform)
    • xdr:blipFill (BlipFillXform)
      • a:blip (BlipXform)
    • xdr:spPr (StaticXform)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.