WPS 电子表格
@ -100,7 +100,7 @@ importScripts("https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.mi
|
||||
</code></pre>
|
||||
|
||||
|
||||
## ECMAScript Module Imports in a SCRIPT TAG
|
||||
## ECMAScript Module Imports
|
||||
|
||||
:::caution
|
||||
|
||||
@ -150,6 +150,7 @@ xport.addEventListener("click", async() => {
|
||||
</script>`}
|
||||
</code></pre>
|
||||
|
||||
Web Worker support is noted in [the demo](../../demos/worker#installation)
|
||||
|
||||
## Bower
|
||||
|
||||
|
@ -26,7 +26,7 @@ This was tested against `lume v1.12.0` on 2022 October 4.
|
||||
1) Create a stock site:
|
||||
|
||||
```bash
|
||||
mkdir sheetjs-lume
|
||||
mkdir -p sheetjs-lume
|
||||
cd sheetjs-lume
|
||||
deno run -A https://deno.land/x/lume/init.ts
|
||||
```
|
||||
@ -41,7 +41,7 @@ The project will be configured and modules will be installed.
|
||||
2) Download <https://sheetjs.com/pres.numbers> and place in a `_data` folder:
|
||||
|
||||
```bash
|
||||
mkdir _data
|
||||
mkdir -p _data
|
||||
curl -LO https://sheetjs.com/pres.numbers
|
||||
mv pres.numbers _data
|
||||
```
|
||||
|
@ -25,9 +25,48 @@ importScripts("https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js
|
||||
|
||||
For production use, it is highly encouraged to download and host the script.
|
||||
|
||||
<details><summary><b>ECMAScript Module Support</b> (click to show)</summary>
|
||||
|
||||
:::note Browser Compatibility
|
||||
|
||||
ESM is supported in Web Workers in the Chromium family of browsers (including
|
||||
Chrome and Edge) as well as in Webkit-based browsers (including Safari).
|
||||
|
||||
For support in legacy browsers like Firefox, `importScripts` should be used.
|
||||
|
||||
:::
|
||||
|
||||
```js
|
||||
import * as XLSX from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs";
|
||||
```
|
||||
|
||||
When using modules, the script must be served with the correct MIME type and the
|
||||
Worker constructor must set the `type` option:
|
||||
|
||||
```js
|
||||
const worker_code = `\
|
||||
/* load standalone script from CDN */
|
||||
import * as XLSX from "https://cdn.sheetjs.com/xlsx-latest/package/xlsx.mjs";
|
||||
// ... do something with XLSX here ...
|
||||
`;
|
||||
const worker = new Worker(
|
||||
URL.createObjectURL(
|
||||
new Blob(
|
||||
[ worker_code ],
|
||||
// highlight-next-line
|
||||
{ type: "text/javascript" } // second argument to the Blob constructor
|
||||
)
|
||||
),
|
||||
// highlight-next-line
|
||||
{type: "module"} // second argument to Worker constructor
|
||||
);
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Downloading a Remote File
|
||||
|
||||
:::note
|
||||
:::note fetch in Web Workers
|
||||
|
||||
`fetch` was enabled in Web Workers in Chrome 42 and Safari 10.3
|
||||
|
||||
@ -46,7 +85,7 @@ In the following example, the script:
|
||||
|
||||
```jsx live
|
||||
function SheetJSFetchDLWorker() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
return ( <>
|
||||
<button onClick={() => {
|
||||
@ -70,7 +109,7 @@ self.addEventListener('message', async(e) => {
|
||||
const html = XLSX.utils.sheet_to_html(ws);
|
||||
|
||||
/* Reply with result */
|
||||
postMessage({html: html});
|
||||
postMessage({ html });
|
||||
} catch(e) {
|
||||
/* Pass the error message back */
|
||||
postMessage({html: String(e.message || e).bold() });
|
||||
@ -82,14 +121,14 @@ self.addEventListener('message', async(e) => {
|
||||
/* post a message to the worker */
|
||||
worker.postMessage({});
|
||||
}}><b>Click to Start</b></button>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</> );
|
||||
}
|
||||
```
|
||||
|
||||
## Creating a Local File
|
||||
|
||||
:::caution `XLSX.writeFile`
|
||||
:::caution Writing files from Web Workers
|
||||
|
||||
`XLSX.writeFile` will not work in Web Workers! Raw file data can be passed from
|
||||
the Web Worker to the main browser context for downloading.
|
||||
@ -106,7 +145,7 @@ In the following example, the script:
|
||||
|
||||
```jsx live
|
||||
function SheetJSWriteFileWorker() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
return ( <>
|
||||
<button onClick={() => { setHTML("");
|
||||
@ -154,23 +193,23 @@ SheetJS,in,Web,Workers
|
||||
/* post a message to the worker */
|
||||
worker.postMessage({});
|
||||
}}><b>Click to Start</b></button>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</> );
|
||||
}
|
||||
```
|
||||
|
||||
## User-Submitted File
|
||||
|
||||
:::note
|
||||
:::note FileReaderSync
|
||||
|
||||
Typically `FileReader` is used in the main browser context. In Web Workers, the
|
||||
synchronous version `FileReaderSync` is more efficient.
|
||||
|
||||
:::
|
||||
|
||||
In the following example, the script:
|
||||
In the following example, when a file is dropped over the DIV or when the INPUT
|
||||
element is used to select a file, the script:
|
||||
|
||||
- waits for the user to drag-drop a file into a DIV
|
||||
- sends the `File` object to the Web Worker
|
||||
- loads the SheetJS library and parses the file in the Worker
|
||||
- generates an HTML string of the first table in the Worker
|
||||
@ -179,15 +218,12 @@ In the following example, the script:
|
||||
|
||||
```jsx live
|
||||
function SheetJSDragDropWorker() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
/* suppress default behavior for drag and drop */
|
||||
function suppress(e) { e.stopPropagation(); e.preventDefault(); }
|
||||
return ( <>
|
||||
<div onDragOver={suppress} onDragEnter={suppress} onDrop={(e) => {
|
||||
suppress(e);
|
||||
|
||||
/* this mantra embeds the worker source in the function */
|
||||
const worker = new Worker(URL.createObjectURL(new Blob([`\
|
||||
/* this worker is shared between drag-drop and file input element */
|
||||
const worker = new Worker(URL.createObjectURL(new Blob([`\
|
||||
/* load standalone script from CDN */
|
||||
importScripts("https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js");
|
||||
|
||||
@ -205,19 +241,27 @@ self.addEventListener('message', (e) => {
|
||||
const html = XLSX.utils.sheet_to_html(ws);
|
||||
|
||||
/* Reply with result */
|
||||
postMessage({html: html});
|
||||
postMessage({ html });
|
||||
} catch(e) {
|
||||
/* Pass the error message back */
|
||||
postMessage({html: String(e.message || e).bold() });
|
||||
}
|
||||
}, false);
|
||||
`])));
|
||||
/* when the worker sends back the HTML, add it to the DOM */
|
||||
worker.onmessage = function(e) { setHTML(e.data.html); };
|
||||
`])));
|
||||
/* when the worker sends back the HTML, add it to the DOM */
|
||||
worker.onmessage = function(e) { setHTML(e.data.html); };
|
||||
return ( <>
|
||||
<div onDragOver={suppress} onDragEnter={suppress} onDrop={(e) => {
|
||||
suppress(e);
|
||||
/* post a message with the first File to the worker */
|
||||
worker.postMessage({ file: e.dataTransfer.files[0] });
|
||||
}}>Drag a file to this DIV to process!</div>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
}}>Drag a file to this DIV to process! (or use the file input)</div>
|
||||
<input type="file" onChange={(e) => {
|
||||
suppress(e);
|
||||
/* post a message with the first File to the worker */
|
||||
worker.postMessage({ file: e.target.files[0] });
|
||||
}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</> );
|
||||
}
|
||||
```
|
@ -130,7 +130,7 @@ import { read, utils, writeFileXLSX } from 'xlsx';
|
||||
|
||||
export default function SheetJSReactHTML() {
|
||||
/* the component state is an HTML string */
|
||||
const [html, setHtml] = useState("");
|
||||
const [__html, setHtml] = useState("");
|
||||
/* the ref is used in export */
|
||||
const tbl = useRef(null);
|
||||
|
||||
@ -157,7 +157,7 @@ export default function SheetJSReactHTML() {
|
||||
return ( <>
|
||||
<button onClick={exportFile}>Export XLSX</button>
|
||||
// highlight-next-line
|
||||
<div ref={tbl} dangerouslySetInnerHTML={{ __html: html }} />
|
||||
<div ref={tbl} dangerouslySetInnerHTML={{ __html }} />
|
||||
</>);
|
||||
}
|
||||
```
|
||||
|
@ -782,7 +782,7 @@ With configuration, SystemJS supports both browser and NodeJS deployments.
|
||||
|
||||
:::caution
|
||||
|
||||
This demo was written against SystemJS 0.19, the most popular SystemJS version.
|
||||
This demo was written against SystemJS 0.19, the most popular SystemJS version
|
||||
used with Angular applications. In the years since the release, Angular and
|
||||
other tools using SystemJS have switched to Webpack.
|
||||
|
||||
|
@ -119,7 +119,7 @@ exports.handler = function(event, context, callback) {
|
||||
1) Create a new folder and download [`index.js`](pathname:///aws/index.js):
|
||||
|
||||
```bash
|
||||
mkdir SheetJSLambda
|
||||
mkdir -p SheetJSLambda
|
||||
cd SheetJSLambda
|
||||
curl -LO https://docs.sheetjs.com/aws/index.js
|
||||
```
|
||||
@ -127,7 +127,7 @@ curl -LO https://docs.sheetjs.com/aws/index.js
|
||||
2) Install dependencies to the current directory;
|
||||
|
||||
```bash
|
||||
mkdir node_modules
|
||||
mkdir -p node_modules
|
||||
npm install https://cdn.sheetjs.com/xlsx-latest/xlsx-latest.tgz busboy
|
||||
```
|
||||
|
||||
|
@ -107,7 +107,7 @@ and show the data in an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSXHRDL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
/* Fetch and update HTML */
|
||||
React.useEffect(async() => {
|
||||
@ -126,7 +126,7 @@ function SheetJSXHRDL() {
|
||||
req.send();
|
||||
}, []);
|
||||
|
||||
return (<div dangerouslySetInnerHTML={{__html: html}}/>);
|
||||
return (<div dangerouslySetInnerHTML={{ __html }}/>);
|
||||
}
|
||||
```
|
||||
|
||||
@ -156,7 +156,7 @@ will parse the workbook and return an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSXHRUL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
const [sz, setSz] = React.useState(0);
|
||||
const csv = "a,b,c\n1,2,3";
|
||||
/* Fetch and update HTML */
|
||||
@ -183,7 +183,7 @@ function SheetJSXHRUL() {
|
||||
<div>{csv}</div>
|
||||
{sz ? (<>
|
||||
<b>Generated file size: {sz} bytes</b>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</>) : (<button onClick={xport}><b>Export and Upload!</b></button>)}
|
||||
</pre>);
|
||||
}
|
||||
@ -217,7 +217,7 @@ the data in an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSFetchDL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
/* Fetch and update HTML */
|
||||
React.useEffect(async() => {
|
||||
@ -233,7 +233,7 @@ function SheetJSFetchDL() {
|
||||
setHTML(XLSX.utils.sheet_to_html(ws));
|
||||
}, []);
|
||||
|
||||
return (<div dangerouslySetInnerHTML={{__html: html}}/>);
|
||||
return (<div dangerouslySetInnerHTML={{ __html }}/>);
|
||||
}
|
||||
```
|
||||
|
||||
@ -253,7 +253,7 @@ the workbook and return an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSFetchUL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
const [sz, setSz] = React.useState(0);
|
||||
const csv = "a,b,c\n1,2,3";
|
||||
/* Fetch and update HTML */
|
||||
@ -280,7 +280,7 @@ function SheetJSFetchUL() {
|
||||
<div>{csv}</div>
|
||||
{sz ? (<>
|
||||
<b>Generated file size: {sz} bytes</b>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</>) : (<button onClick={xport}><b>Export and Upload!</b></button>)}
|
||||
</pre>);
|
||||
}
|
||||
@ -315,7 +315,7 @@ the data in an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSAxiosDL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
/* Fetch and update HTML */
|
||||
React.useEffect(async() => {
|
||||
@ -330,7 +330,7 @@ function SheetJSAxiosDL() {
|
||||
setHTML(XLSX.utils.sheet_to_html(ws));
|
||||
}, []);
|
||||
|
||||
return (<div dangerouslySetInnerHTML={{__html: html}}/>);
|
||||
return (<div dangerouslySetInnerHTML={{ __html }}/>);
|
||||
}
|
||||
```
|
||||
|
||||
@ -349,7 +349,7 @@ the workbook and return an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSAxiosUL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
const [sz, setSz] = React.useState(0);
|
||||
const csv = "a,b,c\n1,2,3";
|
||||
/* Fetch and update HTML */
|
||||
@ -376,7 +376,7 @@ function SheetJSAxiosUL() {
|
||||
<div>{csv}</div>
|
||||
{sz ? (<>
|
||||
<b>Generated file size: {sz} bytes</b>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</>) : (<button onClick={xport}><b>Export and Upload!</b></button>)}
|
||||
</pre>);
|
||||
}
|
||||
@ -406,7 +406,7 @@ show the data in an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSSuperAgentDL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
/* Fetch and update HTML */
|
||||
React.useEffect(async() => {
|
||||
@ -424,7 +424,7 @@ function SheetJSSuperAgentDL() {
|
||||
});
|
||||
}, []);
|
||||
|
||||
return (<div dangerouslySetInnerHTML={{__html: html}}/>);
|
||||
return (<div dangerouslySetInnerHTML={{ __html }}/>);
|
||||
}
|
||||
```
|
||||
|
||||
@ -444,7 +444,7 @@ parse the workbook and return an HTML table.
|
||||
|
||||
```jsx live
|
||||
function SheetJSSuperAgentUL() {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
const [sz, setSz] = React.useState(0);
|
||||
const csv = "a,b,c\n1,2,3";
|
||||
/* Fetch and update HTML */
|
||||
@ -472,7 +472,7 @@ function SheetJSSuperAgentUL() {
|
||||
<div>{csv}</div>
|
||||
{sz ? (<>
|
||||
<b>Generated file size: {sz} bytes</b>
|
||||
<div dangerouslySetInnerHTML={{__html: html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</>) : (<button onClick={xport}><b>Export and Upload!</b></button>)}
|
||||
</pre>);
|
||||
}
|
||||
|
@ -594,3 +594,12 @@ Z.TEST
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Caveats
|
||||
|
||||
In some cases, seemingly valid formulae may be rejected by spreadsheet software.
|
||||
|
||||
`EVALUATE` unprefixed function is supported in WPS Office formulae. It is not
|
||||
valid in a cell formula in Excel. It can be used in an Excel defined name when
|
||||
exporting to XLSM format but not XLSX. This is a limitation of Excel. Since WPS
|
||||
Office accepts files with `EVALUATE`, the writer does not warn or throw errors.
|
@ -29,6 +29,7 @@ hide_table_of_contents: true
|
||||
| UTF-16 Unicode Text (TXT) | ✔ | ✔ |
|
||||
| **Other Workbook/Worksheet Formats** |:-----:|:-----:|
|
||||
| Numbers 3.0+ / iWork 2013+ Spreadsheet (NUMBERS) | ✔ | ✔ |
|
||||
| WPS 电子表格 (ET) | ✔ | |
|
||||
| OpenDocument Spreadsheet (ODS) | ✔ | ✔ |
|
||||
| Flat XML ODF Spreadsheet (FODS) | ✔ | ✔ |
|
||||
| Uniform Office Format Spreadsheet (标文通 UOS1/UOS2) | ✔ | |
|
||||
@ -180,7 +181,7 @@ The parser focuses on extracting raw data from tables. Numbers technically
|
||||
supports multiple tables in a logical worksheet, including custom titles. This
|
||||
parser will generate one worksheet per Numbers table.
|
||||
|
||||
The writer currently exports a small range from the first worksheet.
|
||||
The writer generates one table per sheet.
|
||||
|
||||
#### OpenDocument Spreadsheet (ODS/FODS)
|
||||
|
||||
@ -195,6 +196,11 @@ UOS is a very similar format, and it comes in 2 varieties corresponding to ODS
|
||||
and FODS respectively. For the most part, the difference between the formats
|
||||
is in the names of tags and attributes.
|
||||
|
||||
#### WPS Office Spreadsheet (ET)
|
||||
|
||||
ET is the native format for WPS Office Spreadsheet. It extends the BIFF8 XLS
|
||||
format with proprietary extensions.
|
||||
|
||||
### Miscellaneous Worksheet Formats
|
||||
|
||||
Many older formats supported only one worksheet:
|
||||
|
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 352 KiB |
@ -147,7 +147,7 @@ support for CSS styling and rich text.
|
||||
```jsx live
|
||||
/* The live editor requires this function wrapper */
|
||||
function Numbers2HTML(props) {
|
||||
const [html, setHTML] = React.useState("");
|
||||
const [__html, setHTML] = React.useState("");
|
||||
|
||||
/* Fetch and update HTML */
|
||||
React.useEffect(async() => {
|
||||
@ -163,7 +163,7 @@ function Numbers2HTML(props) {
|
||||
setHTML(XLSX.utils.sheet_to_html(ws));
|
||||
}, []);
|
||||
|
||||
return (<div dangerouslySetInnerHTML={{__html: html}}/>);
|
||||
return (<div dangerouslySetInnerHTML={{ __html }}/>);
|
||||
}
|
||||
```
|
||||
|
||||
@ -227,7 +227,7 @@ This,is,a,Test
|
||||
}}><b>Export XLSX!</b></button>
|
||||
|
||||
{/* Show HTML preview */}
|
||||
<div dangerouslySetInnerHTML={{__html}}/>
|
||||
<div dangerouslySetInnerHTML={{ __html }}/>
|
||||
</>);
|
||||
}
|
||||
```
|
||||
|
BIN
formats.png
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 352 KiB |
BIN
legend.png
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 31 KiB |
@ -17,6 +17,7 @@ digraph G {
|
||||
subgraph OLD {
|
||||
node [style=filled,color=cyan];
|
||||
nums [label="NUMBERS"];
|
||||
et [label="ET"];
|
||||
ods [label="ODS"];
|
||||
fods [label="FODS"];
|
||||
uos [label="UOS"];
|
||||
@ -43,61 +44,62 @@ digraph G {
|
||||
|
||||
subgraph WORKBOOK {
|
||||
edge [color=blue];
|
||||
csf -> xlsx
|
||||
csf -> xlsx
|
||||
xlsx -> csf
|
||||
csf -> xlsb
|
||||
csf -> xlsb
|
||||
xlsb -> csf
|
||||
csf -> xlml
|
||||
csf -> xlml
|
||||
xlml -> csf
|
||||
csf -> xls5
|
||||
csf -> xls5
|
||||
xls5 -> csf
|
||||
csf -> xls8
|
||||
csf -> xls8
|
||||
xls8 -> csf
|
||||
wq2 -> csf
|
||||
ods -> csf
|
||||
csf -> ods
|
||||
wq2 -> csf
|
||||
ods -> csf
|
||||
csf -> ods
|
||||
fods -> csf
|
||||
csf -> fods
|
||||
uos -> csf
|
||||
wk3 -> csf
|
||||
csf -> wk3
|
||||
wk4 -> csf
|
||||
123 -> csf
|
||||
qpw -> csf
|
||||
csf -> fods
|
||||
uos -> csf
|
||||
wk3 -> csf
|
||||
csf -> wk3
|
||||
wk4 -> csf
|
||||
123 -> csf
|
||||
qpw -> csf
|
||||
nums -> csf
|
||||
csf -> nums
|
||||
csf -> nums
|
||||
et -> csf
|
||||
}
|
||||
subgraph WORKSHEET {
|
||||
edge [color=aquamarine4];
|
||||
xls2 -> csf
|
||||
csf -> xls2
|
||||
csf -> xls2
|
||||
xls3 -> csf
|
||||
csf -> xls3
|
||||
csf -> xls3
|
||||
xls4 -> csf
|
||||
csf -> xls4
|
||||
csf -> slk
|
||||
slk -> csf
|
||||
csf -> dif
|
||||
wk1 -> csf
|
||||
csf -> wk1
|
||||
xlr -> csf
|
||||
wq1 -> csf
|
||||
csf -> xls4
|
||||
csf -> slk
|
||||
slk -> csf
|
||||
csf -> dif
|
||||
wk1 -> csf
|
||||
csf -> wk1
|
||||
xlr -> csf
|
||||
wq1 -> csf
|
||||
wksl -> csf
|
||||
wksm -> csf
|
||||
dif -> csf
|
||||
rtf -> csf
|
||||
csf -> rtf
|
||||
prn -> csf
|
||||
csf -> prn
|
||||
csv -> csf
|
||||
csf -> csv
|
||||
txt -> csf
|
||||
csf -> txt
|
||||
dbf -> csf
|
||||
csf -> dbf
|
||||
dif -> csf
|
||||
rtf -> csf
|
||||
csf -> rtf
|
||||
prn -> csf
|
||||
csf -> prn
|
||||
csv -> csf
|
||||
csf -> csv
|
||||
txt -> csf
|
||||
csf -> txt
|
||||
dbf -> csf
|
||||
csf -> dbf
|
||||
html -> csf
|
||||
csf -> html
|
||||
csf -> eth
|
||||
eth -> csf
|
||||
csf -> html
|
||||
csf -> eth
|
||||
eth -> csf
|
||||
}
|
||||
}
|
||||
|
500
misc/formats.svg
@ -1,540 +1,552 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 3.0.0 (20220226.1711)
|
||||
<!-- Generated by graphviz version 6.0.1 (20220911.1526)
|
||||
-->
|
||||
<!-- Title: G Pages: 1 -->
|
||||
<svg width="1056pt" height="1033pt"
|
||||
viewBox="0.00 0.00 1055.79 1032.90" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1028.9)">
|
||||
<svg width="1317pt" height="1269pt"
|
||||
viewBox="0.00 0.00 1317.17 1269.35" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1265.35)">
|
||||
<title>G</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1028.9 1051.79,-1028.9 1051.79,4 -4,4"/>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1265.35 1313.17,-1265.35 1313.17,4 -4,4"/>
|
||||
<!-- csf -->
|
||||
<g id="node1" class="node">
|
||||
<title>csf</title>
|
||||
<ellipse fill="none" stroke="black" cx="523.61" cy="-511.58" rx="94.52" ry="94.52"/>
|
||||
<ellipse fill="none" stroke="black" cx="523.61" cy="-511.58" rx="98.51" ry="98.51"/>
|
||||
<text text-anchor="middle" x="523.61" y="-541.98" font-family="Indie Flower" font-size="22.00">Common</text>
|
||||
<text text-anchor="middle" x="523.61" y="-517.98" font-family="Indie Flower" font-size="22.00">Spreadsheet</text>
|
||||
<text text-anchor="middle" x="523.61" y="-493.98" font-family="Indie Flower" font-size="22.00">Format</text>
|
||||
<text text-anchor="middle" x="523.61" y="-469.98" font-family="Indie Flower" font-size="22.00">(JS Object)</text>
|
||||
<ellipse fill="none" stroke="black" cx="652.98" cy="-627.81" rx="123.07" ry="123.07"/>
|
||||
<ellipse fill="none" stroke="black" cx="652.98" cy="-627.81" rx="127.07" ry="127.07"/>
|
||||
<text text-anchor="middle" x="652.98" y="-658.21" font-family="Indie Flower" font-size="22.00">Common</text>
|
||||
<text text-anchor="middle" x="652.98" y="-634.21" font-family="Indie Flower" font-size="22.00">Spreadsheet</text>
|
||||
<text text-anchor="middle" x="652.98" y="-610.21" font-family="Indie Flower" font-size="22.00">Format</text>
|
||||
<text text-anchor="middle" x="652.98" y="-586.21" font-family="Indie Flower" font-size="22.00">(JS Object)</text>
|
||||
</g>
|
||||
<!-- xls2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>xls2</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="997.58" cy="-511.58" rx="50.41" ry="39.7"/>
|
||||
<text text-anchor="middle" x="997.58" y="-517.98" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="997.58" y="-493.98" font-family="Indie Flower" font-size="22.00">BIFF2</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="1246.94" cy="-627.81" rx="62.45" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1246.94" y="-634.21" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="1246.94" y="-610.21" font-family="Indie Flower" font-size="22.00">BIFF2</text>
|
||||
</g>
|
||||
<!-- csf->xls2 -->
|
||||
<g id="edge25" class="edge">
|
||||
<g id="edge26" class="edge">
|
||||
<title>csf->xls2</title>
|
||||
<path fill="none" stroke="#458b74" d="M622.39,-517.19C717.42,-518.98 858.03,-518.67 937.37,-516.26"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="937.8,-519.75 947.68,-515.93 937.57,-512.76 937.8,-519.75"/>
|
||||
<path fill="none" stroke="#458b74" d="M780.03,-633.46C900.33,-635.22 1076.7,-634.87 1174.63,-632.41"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="1174.83,-635.91 1184.73,-632.14 1174.64,-628.91 1174.83,-635.91"/>
|
||||
</g>
|
||||
<!-- xls3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>xls3</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="985.74" cy="-616.89" rx="48.58" ry="39.7"/>
|
||||
<text text-anchor="middle" x="985.74" y="-623.29" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="985.74" y="-599.29" font-family="Indie Flower" font-size="22.00">BIFF3</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="1232.72" cy="-757.01" rx="60.62" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1232.72" y="-763.41" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="1232.72" y="-739.41" font-family="Indie Flower" font-size="22.00">BIFF3</text>
|
||||
</g>
|
||||
<!-- csf->xls3 -->
|
||||
<g id="edge27" class="edge">
|
||||
<g id="edge28" class="edge">
|
||||
<title>csf->xls3</title>
|
||||
<path fill="none" stroke="#458b74" d="M618.68,-539C711.44,-561.98 849.59,-593.14 927.26,-608.33"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="926.87,-611.81 937.35,-610.27 928.19,-604.94 926.87,-611.81"/>
|
||||
<path fill="none" stroke="#458b74" d="M775.76,-660.96C893.76,-689.07 1067.85,-727.49 1163.49,-746.23"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="1162.86,-749.67 1173.35,-748.15 1164.2,-742.8 1162.86,-749.67"/>
|
||||
</g>
|
||||
<!-- xls4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>xls4</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="951.7" cy="-715.02" rx="48.17" ry="39.7"/>
|
||||
<text text-anchor="middle" x="951.7" y="-721.42" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="951.7" y="-697.42" font-family="Indie Flower" font-size="22.00">BIFF4</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="1191.34" cy="-878.73" rx="60.62" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1191.34" y="-885.13" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="1191.34" y="-861.13" font-family="Indie Flower" font-size="22.00">BIFF4</text>
|
||||
</g>
|
||||
<!-- csf->xls4 -->
|
||||
<g id="edge29" class="edge">
|
||||
<g id="edge30" class="edge">
|
||||
<title>csf->xls4</title>
|
||||
<path fill="none" stroke="#458b74" d="M610.42,-559.05C696.65,-602.03 826.1,-663.17 898.26,-694.7"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="897.06,-697.99 907.63,-698.76 899.85,-691.57 897.06,-697.99"/>
|
||||
<path fill="none" stroke="#458b74" d="M765.75,-686.61C876.31,-740.12 1040.75,-816.32 1129.38,-854.76"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="1128.19,-858.06 1138.76,-858.81 1130.97,-851.63 1128.19,-858.06"/>
|
||||
</g>
|
||||
<!-- xls5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>xls5</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="895.8" cy="-805.05" rx="50.82" ry="39.7"/>
|
||||
<text text-anchor="middle" x="895.8" y="-811.45" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="895.8" y="-787.45" font-family="Indie Flower" font-size="22.00">BIFF5</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="1123" cy="-990.95" rx="63.78" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1123" y="-997.35" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="1123" y="-973.35" font-family="Indie Flower" font-size="22.00">BIFF5</text>
|
||||
</g>
|
||||
<!-- csf->xls5 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>csf->xls5</title>
|
||||
<path fill="none" stroke="blue" d="M597.71,-577.15C672.23,-638.22 784.86,-726.59 848.21,-773.36"/>
|
||||
<polygon fill="blue" stroke="blue" points="846.31,-776.31 856.44,-779.4 850.45,-770.66 846.31,-776.31"/>
|
||||
<path fill="none" stroke="blue" d="M750.07,-709.96C847.44,-787.49 993.68,-899.91 1070.93,-956.2"/>
|
||||
<polygon fill="blue" stroke="blue" points="1068.95,-959.08 1079.1,-962.12 1073.06,-953.42 1068.95,-959.08"/>
|
||||
</g>
|
||||
<!-- xls8 -->
|
||||
<g id="node6" class="node">
|
||||
<title>xls8</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="821.3" cy="-880.41" rx="48.17" ry="39.7"/>
|
||||
<text text-anchor="middle" x="821.3" y="-886.81" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="821.3" y="-862.81" font-family="Indie Flower" font-size="22.00">BIFF8</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="1032.22" cy="-1084.94" rx="60.21" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1032.22" y="-1091.34" font-family="Indie Flower" font-size="22.00">XLS</text>
|
||||
<text text-anchor="middle" x="1032.22" y="-1067.34" font-family="Indie Flower" font-size="22.00">BIFF8</text>
|
||||
</g>
|
||||
<!-- csf->xls8 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>csf->xls8</title>
|
||||
<path fill="none" stroke="blue" d="M581.29,-591.97C641.33,-669.31 733.48,-782.86 784.4,-841.8"/>
|
||||
<polygon fill="blue" stroke="blue" points="781.8,-844.14 791,-849.39 787.09,-839.55 781.8,-844.14"/>
|
||||
<path fill="none" stroke="blue" d="M729.75,-729.21C809.3,-828 930.45,-973.25 992.55,-1043.68"/>
|
||||
<polygon fill="blue" stroke="blue" points="990.21,-1046.32 999.46,-1051.48 995.45,-1041.68 990.21,-1046.32"/>
|
||||
</g>
|
||||
<!-- xlml -->
|
||||
<g id="node7" class="node">
|
||||
<title>xlml</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="721.05" cy="-942.48" rx="62.87" ry="39.7"/>
|
||||
<text text-anchor="middle" x="721.05" y="-948.88" font-family="Indie Flower" font-size="22.00">SSML</text>
|
||||
<text text-anchor="middle" x="721.05" y="-924.88" font-family="Indie Flower" font-size="22.00">(2003/4)</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="909.77" cy="-1163.4" rx="78.48" ry="39.7"/>
|
||||
<text text-anchor="middle" x="909.77" y="-1169.8" font-family="Indie Flower" font-size="22.00">SSML</text>
|
||||
<text text-anchor="middle" x="909.77" y="-1145.8" font-family="Indie Flower" font-size="22.00">(2003/4)</text>
|
||||
</g>
|
||||
<!-- csf->xlml -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>csf->xlml</title>
|
||||
<path fill="none" stroke="blue" d="M559.66,-603.72C598.81,-693.6 660.19,-826.63 694.96,-896.23"/>
|
||||
<polygon fill="blue" stroke="blue" points="691.86,-897.85 699.48,-905.21 698.11,-894.7 691.86,-897.85"/>
|
||||
<path fill="none" stroke="blue" d="M702.81,-744.82C756.58,-861.29 840.06,-1034.2 882.78,-1116.54"/>
|
||||
<polygon fill="blue" stroke="blue" points="879.67,-1118.17 887.4,-1125.41 885.88,-1114.93 879.67,-1118.17"/>
|
||||
</g>
|
||||
<!-- xlsx -->
|
||||
<g id="node8" class="node">
|
||||
<title>xlsx</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="612.75" cy="-977.1" rx="43.68" ry="39.7"/>
|
||||
<text text-anchor="middle" x="612.75" y="-983.5" font-family="Indie Flower" font-size="22.00">XLSX</text>
|
||||
<text text-anchor="middle" x="612.75" y="-959.5" font-family="Indie Flower" font-size="22.00">XLSM</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="777.46" cy="-1208.58" rx="54.39" ry="39.7"/>
|
||||
<text text-anchor="middle" x="777.46" y="-1214.98" font-family="Indie Flower" font-size="22.00">XLSX</text>
|
||||
<text text-anchor="middle" x="777.46" y="-1190.98" font-family="Indie Flower" font-size="22.00">XLSM</text>
|
||||
</g>
|
||||
<!-- csf->xlsx -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>csf->xlsx</title>
|
||||
<path fill="none" stroke="blue" d="M536.68,-609.66C553.49,-707.36 581.86,-853.31 599,-928.49"/>
|
||||
<polygon fill="blue" stroke="blue" points="595.68,-929.66 601.34,-938.61 602.5,-928.08 595.68,-929.66"/>
|
||||
<path fill="none" stroke="blue" d="M674.08,-753.23C699.43,-880.52 740.85,-1071.11 762.95,-1159.86"/>
|
||||
<polygon fill="blue" stroke="blue" points="759.58,-1160.82 765.41,-1169.66 766.37,-1159.11 759.58,-1160.82"/>
|
||||
</g>
|
||||
<!-- xlsb -->
|
||||
<g id="node9" class="node">
|
||||
<title>xlsb</title>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="507.8" cy="-985.3" rx="54.39" ry="39.7"/>
|
||||
<text text-anchor="middle" x="507.8" y="-991.7" font-family="Indie Flower" font-size="22.00">XLSB</text>
|
||||
<text text-anchor="middle" x="507.8" y="-967.7" font-family="Indie Flower" font-size="22.00">BIFF12</text>
|
||||
<ellipse fill="#00ff00" stroke="#00ff00" cx="648.16" cy="-1221.76" rx="68.68" ry="39.7"/>
|
||||
<text text-anchor="middle" x="648.16" y="-1228.16" font-family="Indie Flower" font-size="22.00">XLSB</text>
|
||||
<text text-anchor="middle" x="648.16" y="-1204.16" font-family="Indie Flower" font-size="22.00">BIFF12</text>
|
||||
</g>
|
||||
<!-- csf->xlsb -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>csf->xlsb</title>
|
||||
<path fill="none" stroke="blue" d="M514.71,-610.13C509.53,-709.25 504.98,-858.13 505.12,-935.15"/>
|
||||
<polygon fill="blue" stroke="blue" points="501.62,-935.54 505.17,-945.53 508.62,-935.51 501.62,-935.54"/>
|
||||
<path fill="none" stroke="blue" d="M646.29,-754.82C643.33,-885.07 642.31,-1081.08 644.61,-1172.08"/>
|
||||
<polygon fill="blue" stroke="blue" points="641.11,-1172.22 644.89,-1182.12 648.11,-1172.03 641.11,-1172.22"/>
|
||||
</g>
|
||||
<!-- nums -->
|
||||
<g id="node10" class="node">
|
||||
<title>nums</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="371.79" cy="-960.59" rx="77.15" ry="22.76"/>
|
||||
<text text-anchor="middle" x="371.79" y="-954.99" font-family="Indie Flower" font-size="22.00">NUMBERS</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="476.1" cy="-1194.83" rx="98.99" ry="22.76"/>
|
||||
<text text-anchor="middle" x="476.1" y="-1189.23" font-family="Indie Flower" font-size="22.00">NUMBERS</text>
|
||||
</g>
|
||||
<!-- csf->nums -->
|
||||
<g id="edge23" class="edge">
|
||||
<title>csf->nums</title>
|
||||
<path fill="none" stroke="blue" d="M486.66,-603.37C450.44,-704.18 398.22,-860.67 378.95,-927.99"/>
|
||||
<polygon fill="blue" stroke="blue" points="375.58,-927.06 376.25,-937.64 382.32,-928.95 375.58,-927.06"/>
|
||||
<path fill="none" stroke="blue" d="M609.74,-747.42C566.53,-879.14 503.83,-1082.75 482.89,-1161.84"/>
|
||||
<polygon fill="blue" stroke="blue" points="479.45,-1161.17 480.33,-1171.72 486.23,-1162.92 479.45,-1161.17"/>
|
||||
</g>
|
||||
<!-- ods -->
|
||||
<g id="node11" class="node">
|
||||
<g id="node12" class="node">
|
||||
<title>ods</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="258.58" cy="-904.55" rx="42.35" ry="22.76"/>
|
||||
<text text-anchor="middle" x="258.58" y="-898.95" font-family="Indie Flower" font-size="22.00">ODS</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="332.22" cy="-1127.72" rx="53.07" ry="22.76"/>
|
||||
<text text-anchor="middle" x="332.22" y="-1122.12" font-family="Indie Flower" font-size="22.00">ODS</text>
|
||||
</g>
|
||||
<!-- csf->ods -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>csf->ods</title>
|
||||
<path fill="none" stroke="blue" d="M463.73,-590.35C402.62,-677.38 311.79,-813.17 274.9,-873.69"/>
|
||||
<polygon fill="blue" stroke="blue" points="271.81,-872.02 269.65,-882.39 277.81,-875.63 271.81,-872.02"/>
|
||||
<path fill="none" stroke="blue" d="M579.61,-731.7C503.59,-846.45 390.27,-1024.46 348.4,-1096.2"/>
|
||||
<polygon fill="blue" stroke="blue" points="345.17,-1094.8 343.2,-1105.21 351.23,-1098.3 345.17,-1094.8"/>
|
||||
</g>
|
||||
<!-- fods -->
|
||||
<g id="node12" class="node">
|
||||
<g id="node13" class="node">
|
||||
<title>fods</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="182.28" cy="-840.45" rx="50.41" ry="22.76"/>
|
||||
<text text-anchor="middle" x="182.28" y="-834.85" font-family="Indie Flower" font-size="22.00">FODS</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="235.67" cy="-1050.48" rx="63.78" ry="22.76"/>
|
||||
<text text-anchor="middle" x="235.67" y="-1044.88" font-family="Indie Flower" font-size="22.00">FODS</text>
|
||||
</g>
|
||||
<!-- csf->fods -->
|
||||
<g id="edge15" class="edge">
|
||||
<title>csf->fods</title>
|
||||
<path fill="none" stroke="blue" d="M448.58,-576.09C371.6,-647.51 256.35,-759.37 206.55,-811.72"/>
|
||||
<polygon fill="blue" stroke="blue" points="204,-809.32 199.69,-819 209.1,-814.12 204,-809.32"/>
|
||||
<path fill="none" stroke="blue" d="M559.69,-714.25C462.76,-809.61 317.44,-957.8 260.11,-1020.7"/>
|
||||
<polygon fill="blue" stroke="blue" points="257.35,-1018.53 253.24,-1028.29 262.55,-1023.22 257.35,-1018.53"/>
|
||||
</g>
|
||||
<!-- html -->
|
||||
<g id="node14" class="node">
|
||||
<g id="node15" class="node">
|
||||
<title>html</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="118.85" cy="-758.21" rx="46.84" ry="39.7"/>
|
||||
<text text-anchor="middle" x="118.85" y="-764.61" font-family="Indie Flower" font-size="22.00">HTML</text>
|
||||
<text text-anchor="middle" x="118.85" y="-740.61" font-family="Indie Flower" font-size="22.00">Table</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="154.49" cy="-950.78" rx="57.97" ry="39.7"/>
|
||||
<text text-anchor="middle" x="154.49" y="-957.18" font-family="Indie Flower" font-size="22.00">HTML</text>
|
||||
<text text-anchor="middle" x="154.49" y="-933.18" font-family="Indie Flower" font-size="22.00">Table</text>
|
||||
</g>
|
||||
<!-- csf->html -->
|
||||
<g id="edge51" class="edge">
|
||||
<g id="edge52" class="edge">
|
||||
<title>csf->html</title>
|
||||
<path fill="none" stroke="#458b74" d="M436.33,-558.2C352,-607.43 227.75,-683.58 162.5,-726.37"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="160.5,-723.5 154.08,-731.93 164.35,-729.34 160.5,-723.5"/>
|
||||
<path fill="none" stroke="#458b74" d="M543.27,-692.15C436.52,-759.13 279.4,-861.48 201.63,-915.19"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="199.23,-912.6 193,-921.17 203.22,-918.35 199.23,-912.6"/>
|
||||
</g>
|
||||
<!-- csv -->
|
||||
<g id="node15" class="node">
|
||||
<g id="node16" class="node">
|
||||
<title>csv</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="79.84" cy="-678.11" rx="35.21" ry="22.76"/>
|
||||
<text text-anchor="middle" x="79.84" y="-672.51" font-family="Indie Flower" font-size="22.00">CSV</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="103.65" cy="-853.72" rx="44.6" ry="22.76"/>
|
||||
<text text-anchor="middle" x="103.65" y="-848.12" font-family="Indie Flower" font-size="22.00">CSV</text>
|
||||
</g>
|
||||
<!-- csf->csv -->
|
||||
<g id="edge45" class="edge">
|
||||
<g id="edge46" class="edge">
|
||||
<title>csf->csv</title>
|
||||
<path fill="none" stroke="#458b74" d="M429.15,-541.04C331.87,-575.47 185.16,-631.09 117.03,-659.87"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="115.39,-656.77 107.57,-663.91 118.14,-663.2 115.39,-656.77"/>
|
||||
<path fill="none" stroke="#458b74" d="M533.32,-670.91C410.07,-719.5 224.93,-796.31 143.96,-833.04"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="142.25,-829.97 134.61,-837.31 145.16,-836.34 142.25,-829.97"/>
|
||||
</g>
|
||||
<!-- txt -->
|
||||
<g id="node16" class="node">
|
||||
<g id="node17" class="node">
|
||||
<title>txt</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="55.15" cy="-583.75" rx="55.31" ry="39.7"/>
|
||||
<text text-anchor="middle" x="55.15" y="-590.15" font-family="Indie Flower" font-size="22.00">TXT</text>
|
||||
<text text-anchor="middle" x="55.15" y="-566.15" font-family="Indie Flower" font-size="22.00">UTF-16</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="69.3" cy="-737.87" rx="69.09" ry="39.7"/>
|
||||
<text text-anchor="middle" x="69.3" y="-744.27" font-family="Indie Flower" font-size="22.00">TXT</text>
|
||||
<text text-anchor="middle" x="69.3" y="-720.27" font-family="Indie Flower" font-size="22.00">UTF-16</text>
|
||||
</g>
|
||||
<!-- csf->txt -->
|
||||
<g id="edge47" class="edge">
|
||||
<g id="edge48" class="edge">
|
||||
<title>csf->txt</title>
|
||||
<path fill="none" stroke="#458b74" d="M425.12,-521.09C332.47,-533.58 196.55,-554.79 117.84,-569.24"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="116.78,-565.88 107.59,-571.15 118.06,-572.76 116.78,-565.88"/>
|
||||
<path fill="none" stroke="#458b74" d="M527.07,-645.8C409.83,-666.14 239.07,-698.67 142.67,-719.27"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="141.76,-715.88 132.72,-721.41 143.24,-722.73 141.76,-715.88"/>
|
||||
</g>
|
||||
<!-- dbf -->
|
||||
<g id="node17" class="node">
|
||||
<g id="node18" class="node">
|
||||
<title>dbf</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="50.78" cy="-478.57" rx="43.27" ry="22.76"/>
|
||||
<text text-anchor="middle" x="50.78" y="-472.97" font-family="Indie Flower" font-size="22.00">DBF</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="59.31" cy="-608.98" rx="53.07" ry="22.76"/>
|
||||
<text text-anchor="middle" x="59.31" y="-603.38" font-family="Indie Flower" font-size="22.00">DBF</text>
|
||||
</g>
|
||||
<!-- csf->dbf -->
|
||||
<g id="edge49" class="edge">
|
||||
<g id="edge50" class="edge">
|
||||
<title>csf->dbf</title>
|
||||
<path fill="none" stroke="#458b74" d="M425.45,-499.11C327.93,-490.46 182.02,-480.65 104.19,-477.83"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="104.24,-474.33 94.12,-477.5 104,-481.33 104.24,-474.33"/>
|
||||
<path fill="none" stroke="#458b74" d="M526.16,-618.13C401.99,-612.38 217.94,-606.98 122.25,-606.62"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="122.15,-603.12 112.15,-606.61 122.14,-610.12 122.15,-603.12"/>
|
||||
</g>
|
||||
<!-- dif -->
|
||||
<g id="node18" class="node">
|
||||
<g id="node19" class="node">
|
||||
<title>dif</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="64.07" cy="-395.46" rx="33.88" ry="22.76"/>
|
||||
<text text-anchor="middle" x="64.07" y="-389.86" font-family="Indie Flower" font-size="22.00">DIF</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="71.25" cy="-507.86" rx="41.94" ry="22.76"/>
|
||||
<text text-anchor="middle" x="71.25" y="-502.26" font-family="Indie Flower" font-size="22.00">DIF</text>
|
||||
</g>
|
||||
<!-- csf->dif -->
|
||||
<g id="edge32" class="edge">
|
||||
<g id="edge33" class="edge">
|
||||
<title>csf->dif</title>
|
||||
<path fill="none" stroke="#458b74" d="M429.2,-481.95C330.69,-455.07 180.59,-417.66 107.33,-402.16"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="108.02,-398.73 97.52,-400.12 106.6,-405.58 108.02,-398.73"/>
|
||||
<path fill="none" stroke="#458b74" d="M529.68,-596.62C403.28,-568.62 212.8,-529.9 122.38,-514.31"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="122.83,-510.84 112.38,-512.61 121.65,-517.74 122.83,-510.84"/>
|
||||
</g>
|
||||
<!-- slk -->
|
||||
<g id="node19" class="node">
|
||||
<g id="node20" class="node">
|
||||
<title>slk</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="90.7" cy="-318.6" rx="40.11" ry="22.76"/>
|
||||
<text text-anchor="middle" x="90.7" y="-313" font-family="Indie Flower" font-size="22.00">SYLK</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="99.26" cy="-412.89" rx="50.41" ry="22.76"/>
|
||||
<text text-anchor="middle" x="99.26" y="-407.29" font-family="Indie Flower" font-size="22.00">SYLK</text>
|
||||
</g>
|
||||
<!-- csf->slk -->
|
||||
<g id="edge30" class="edge">
|
||||
<g id="edge31" class="edge">
|
||||
<title>csf->slk</title>
|
||||
<path fill="none" stroke="#458b74" d="M435.66,-466.25C344.49,-423.52 205.65,-362.13 135.13,-333.78"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="136.23,-330.45 125.64,-330 133.64,-336.95 136.23,-330.45"/>
|
||||
<path fill="none" stroke="#458b74" d="M536.57,-576.57C417.67,-528.41 238.49,-459.42 151,-428.59"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="152.15,-425.29 141.56,-425.29 149.84,-431.89 152.15,-425.29"/>
|
||||
</g>
|
||||
<!-- prn -->
|
||||
<g id="node20" class="node">
|
||||
<g id="node21" class="node">
|
||||
<title>prn</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="133.25" cy="-242.74" rx="39.7" ry="22.76"/>
|
||||
<text text-anchor="middle" x="133.25" y="-237.14" font-family="Indie Flower" font-size="22.00">PRN</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="147.05" cy="-316.64" rx="50.41" ry="22.76"/>
|
||||
<text text-anchor="middle" x="147.05" y="-311.04" font-family="Indie Flower" font-size="22.00">PRN</text>
|
||||
</g>
|
||||
<!-- csf->prn -->
|
||||
<g id="edge43" class="edge">
|
||||
<g id="edge44" class="edge">
|
||||
<title>csf->prn</title>
|
||||
<path fill="none" stroke="#458b74" d="M445.43,-450.94C362.4,-391.42 234.63,-304.03 171.38,-264.02"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="172.86,-260.81 162.53,-258.47 169.14,-266.74 172.86,-260.81"/>
|
||||
<path fill="none" stroke="#458b74" d="M547.71,-556.43C437.14,-486.18 268.64,-383.23 190.1,-338.55"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="191.41,-335.26 180.98,-333.39 187.97,-341.36 191.41,-335.26"/>
|
||||
</g>
|
||||
<!-- rtf -->
|
||||
<g id="node21" class="node">
|
||||
<g id="node22" class="node">
|
||||
<title>rtf</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="186.96" cy="-177.94" rx="37.45" ry="22.76"/>
|
||||
<text text-anchor="middle" x="186.96" y="-172.34" font-family="Indie Flower" font-size="22.00">RTF</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="209.04" cy="-233.21" rx="46.84" ry="22.76"/>
|
||||
<text text-anchor="middle" x="209.04" y="-227.61" font-family="Indie Flower" font-size="22.00">RTF</text>
|
||||
</g>
|
||||
<!-- csf->rtf -->
|
||||
<g id="edge41" class="edge">
|
||||
<g id="edge42" class="edge">
|
||||
<title>csf->rtf</title>
|
||||
<path fill="none" stroke="#458b74" d="M457.39,-438.07C384.75,-363.31 271.41,-251.77 217.44,-202.62"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="219.68,-199.94 209.92,-195.84 214.99,-205.13 219.68,-199.94"/>
|
||||
<path fill="none" stroke="#458b74" d="M561.77,-539.18C462.96,-448.73 310.47,-314.07 243.04,-258.5"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="245.21,-255.75 235.25,-252.13 240.77,-261.17 245.21,-255.75"/>
|
||||
</g>
|
||||
<!-- wk1 -->
|
||||
<g id="node22" class="node">
|
||||
<g id="node23" class="node">
|
||||
<title>wk1</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="247.81" cy="-126.11" rx="35.21" ry="22.76"/>
|
||||
<text text-anchor="middle" x="247.81" y="-120.51" font-family="Indie Flower" font-size="22.00">WK1</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="278.55" cy="-166.72" rx="42.35" ry="22.76"/>
|
||||
<text text-anchor="middle" x="278.55" y="-161.12" font-family="Indie Flower" font-size="22.00">WK1</text>
|
||||
</g>
|
||||
<!-- csf->wk1 -->
|
||||
<g id="edge34" class="edge">
|
||||
<g id="edge35" class="edge">
|
||||
<title>csf->wk1</title>
|
||||
<path fill="none" stroke="#458b74" d="M470.68,-427.98C411.03,-341.2 316.74,-210.42 272.33,-153.8"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="274.86,-151.35 265.9,-145.69 269.37,-155.7 274.86,-151.35"/>
|
||||
<path fill="none" stroke="#458b74" d="M577.27,-525.62C493.31,-419.08 362.35,-258.92 305.89,-194.74"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="308.31,-192.2 299.06,-187.04 303.08,-196.84 308.31,-192.2"/>
|
||||
</g>
|
||||
<!-- wk3 -->
|
||||
<g id="node24" class="node">
|
||||
<g id="node25" class="node">
|
||||
<title>wk3</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="316.52" cy="-85.24" rx="37.45" ry="22.76"/>
|
||||
<text text-anchor="middle" x="316.52" y="-79.64" font-family="Indie Flower" font-size="22.00">WK3</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="356.66" cy="-113.04" rx="45.01" ry="22.76"/>
|
||||
<text text-anchor="middle" x="356.66" y="-107.44" font-family="Indie Flower" font-size="22.00">WK3</text>
|
||||
</g>
|
||||
<!-- csf->wk3 -->
|
||||
<g id="edge18" class="edge">
|
||||
<title>csf->wk3</title>
|
||||
<path fill="none" stroke="blue" d="M485.49,-420.28C440.94,-324 369.25,-177.81 335.28,-115.28"/>
|
||||
<polygon fill="blue" stroke="blue" points="338.25,-113.41 330.36,-106.34 332.11,-116.78 338.25,-113.41"/>
|
||||
<path fill="none" stroke="blue" d="M594.49,-514.87C527.91,-395.2 422.72,-213.93 377.89,-142.98"/>
|
||||
<polygon fill="blue" stroke="blue" points="380.81,-141.04 372.48,-134.49 374.9,-144.81 380.81,-141.04"/>
|
||||
</g>
|
||||
<!-- eth -->
|
||||
<g id="node32" class="node">
|
||||
<g id="node33" class="node">
|
||||
<title>eth</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="392.47" cy="-56.11" rx="36.54" ry="22.76"/>
|
||||
<text text-anchor="middle" x="392.47" y="-50.51" font-family="Indie Flower" font-size="22.00">ETH</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="445.63" cy="-71.21" rx="45.92" ry="22.76"/>
|
||||
<text text-anchor="middle" x="445.63" y="-65.61" font-family="Indie Flower" font-size="22.00">ETH</text>
|
||||
</g>
|
||||
<!-- csf->eth -->
|
||||
<g id="edge52" class="edge">
|
||||
<g id="edge53" class="edge">
|
||||
<title>csf->eth</title>
|
||||
<path fill="none" stroke="#458b74" d="M501.66,-415.11C474.1,-312.13 428.15,-154.8 405.49,-87.94"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="408.76,-86.69 402.19,-78.38 402.14,-88.97 408.76,-86.69"/>
|
||||
<path fill="none" stroke="#458b74" d="M613.92,-506.78C567.75,-377.1 493.39,-179.62 461.13,-103.07"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="464.19,-101.33 457.05,-93.51 457.75,-104.08 464.19,-101.33"/>
|
||||
</g>
|
||||
<!-- xls2->csf -->
|
||||
<g id="edge24" class="edge">
|
||||
<g id="edge25" class="edge">
|
||||
<title>xls2->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M947.31,-507.23C872.79,-504.62 731.21,-504.14 632.3,-505.8"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="632.21,-502.31 622.27,-505.98 632.33,-509.3 632.21,-502.31"/>
|
||||
<path fill="none" stroke="#458b74" d="M1185.06,-623.49C1092.29,-620.86 914.8,-620.36 790.41,-622.01"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="790,-618.52 780.05,-622.16 790.1,-625.52 790,-618.52"/>
|
||||
</g>
|
||||
<!-- xls3->csf -->
|
||||
<g id="edge26" class="edge">
|
||||
<g id="edge27" class="edge">
|
||||
<title>xls3->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M940.26,-602.16C869.05,-583.17 729.27,-550.8 631.33,-530.2"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="631.89,-526.74 621.39,-528.12 630.46,-533.59 631.89,-526.74"/>
|
||||
<path fill="none" stroke="#458b74" d="M1177.26,-740.34C1088.44,-717.74 911.75,-677.82 788.14,-652"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="788.72,-648.54 778.22,-649.93 787.29,-655.4 788.72,-648.54"/>
|
||||
</g>
|
||||
<!-- xls4->csf -->
|
||||
<g id="edge28" class="edge">
|
||||
<g id="edge29" class="edge">
|
||||
<title>xls4->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M912.45,-691.74C847.68,-657.9 716.49,-594.96 624.46,-553.11"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="625.68,-549.82 615.13,-548.88 622.79,-556.19 625.68,-549.82"/>
|
||||
<path fill="none" stroke="#458b74" d="M1145.27,-852.8C1065.06,-812.24 897.14,-733.33 779.83,-680.54"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="780.97,-677.22 770.42,-676.31 778.1,-683.6 780.97,-677.22"/>
|
||||
</g>
|
||||
<!-- xls5->csf -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>xls5->csf</title>
|
||||
<path fill="none" stroke="blue" d="M863.35,-774.19C807.96,-726.96 693.45,-635.97 612.71,-574.48"/>
|
||||
<polygon fill="blue" stroke="blue" points="614.59,-571.51 604.52,-568.25 610.36,-577.09 614.59,-571.51"/>
|
||||
<path fill="none" stroke="blue" d="M1086.93,-958.13C1018.99,-901.87 869.63,-785.68 765.21,-707.2"/>
|
||||
<polygon fill="blue" stroke="blue" points="767.24,-704.35 757.14,-701.14 763.04,-709.94 767.24,-704.35"/>
|
||||
</g>
|
||||
<!-- xls8->csf -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>xls8->csf</title>
|
||||
<path fill="none" stroke="blue" d="M798.28,-845.47C755.53,-787.92 662.57,-671.8 596.63,-592.85"/>
|
||||
<polygon fill="blue" stroke="blue" points="599.04,-590.27 589.93,-584.85 593.67,-594.76 599.04,-590.27"/>
|
||||
<path fill="none" stroke="blue" d="M1006.92,-1048.56C954.36,-980.32 831.39,-831.03 745.21,-729.91"/>
|
||||
<polygon fill="blue" stroke="blue" points="747.71,-727.44 738.55,-722.11 742.38,-731.98 747.71,-727.44"/>
|
||||
</g>
|
||||
<!-- xlml->csf -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>xlml->csf</title>
|
||||
<path fill="none" stroke="blue" d="M707.67,-903.71C680.6,-837.59 618.76,-701.21 574.17,-608.06"/>
|
||||
<polygon fill="blue" stroke="blue" points="577.26,-606.4 569.77,-598.9 570.95,-609.43 577.26,-606.4"/>
|
||||
<path fill="none" stroke="blue" d="M895.02,-1124.15C861.21,-1046.24 777.16,-869.3 717.58,-749.15"/>
|
||||
<polygon fill="blue" stroke="blue" points="720.56,-747.28 712.98,-739.88 714.29,-750.39 720.56,-747.28"/>
|
||||
</g>
|
||||
<!-- xlsx->csf -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>xlsx->csf</title>
|
||||
<path fill="none" stroke="blue" d="M609.18,-937.47C598.77,-867.34 571.02,-719.19 549.78,-617.52"/>
|
||||
<polygon fill="blue" stroke="blue" points="553.16,-616.59 547.68,-607.52 546.31,-618.03 553.16,-616.59"/>
|
||||
<path fill="none" stroke="blue" d="M772.62,-1168.82C758.23,-1086.14 717.45,-892.41 687.38,-760.68"/>
|
||||
<polygon fill="blue" stroke="blue" points="690.79,-759.88 685.14,-750.91 683.96,-761.44 690.79,-759.88"/>
|
||||
</g>
|
||||
<!-- xlsb->csf -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>xlsb->csf</title>
|
||||
<path fill="none" stroke="blue" d="M513.06,-945.86C518.39,-875.15 524.03,-724.54 525.75,-620.69"/>
|
||||
<polygon fill="blue" stroke="blue" points="529.26,-620.53 525.91,-610.47 522.26,-620.42 529.26,-620.53"/>
|
||||
<path fill="none" stroke="blue" d="M652.08,-1181.89C656.02,-1098.06 658.36,-900.1 657.66,-764.98"/>
|
||||
<polygon fill="blue" stroke="blue" points="661.16,-764.94 657.6,-754.96 654.16,-764.98 661.16,-764.94"/>
|
||||
</g>
|
||||
<!-- nums->csf -->
|
||||
<g id="edge22" class="edge">
|
||||
<title>nums->csf</title>
|
||||
<path fill="none" stroke="blue" d="M382.8,-938.12C406.12,-880.29 460.03,-723.53 494.07,-617.04"/>
|
||||
<polygon fill="blue" stroke="blue" points="497.49,-617.81 497.19,-607.22 490.82,-615.68 497.49,-617.81"/>
|
||||
<path fill="none" stroke="blue" d="M486.25,-1172.05C511.48,-1104.06 576.52,-898.79 617.6,-760.69"/>
|
||||
<polygon fill="blue" stroke="blue" points="621.02,-761.45 620.51,-750.87 614.31,-759.46 621.02,-761.45"/>
|
||||
</g>
|
||||
<!-- et -->
|
||||
<g id="node11" class="node">
|
||||
<title>et</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="530.57" cy="-46.6" rx="35.21" ry="22.76"/>
|
||||
<text text-anchor="middle" x="530.57" y="-41" font-family="Indie Flower" font-size="22.00">ET</text>
|
||||
</g>
|
||||
<!-- et->csf -->
|
||||
<g id="edge24" class="edge">
|
||||
<title>et->csf</title>
|
||||
<path fill="none" stroke="blue" d="M535.29,-69.02C549.82,-138.04 594.71,-351.14 624.65,-493.33"/>
|
||||
<polygon fill="blue" stroke="blue" points="621.3,-494.38 626.78,-503.44 628.15,-492.94 621.3,-494.38"/>
|
||||
</g>
|
||||
<!-- ods->csf -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>ods->csf</title>
|
||||
<path fill="none" stroke="blue" d="M276.57,-883.88C315.28,-832.69 407.35,-697.62 467.54,-605.05"/>
|
||||
<polygon fill="blue" stroke="blue" points="470.58,-606.81 473.09,-596.51 464.71,-603 470.58,-606.81"/>
|
||||
<path fill="none" stroke="blue" d="M349.62,-1106.26C393.24,-1045.17 508.55,-867.15 583.81,-746.34"/>
|
||||
<polygon fill="blue" stroke="blue" points="586.84,-748.08 589.15,-737.74 580.9,-744.39 586.84,-748.08"/>
|
||||
</g>
|
||||
<!-- fods->csf -->
|
||||
<g id="edge14" class="edge">
|
||||
<title>fods->csf</title>
|
||||
<path fill="none" stroke="blue" d="M207.98,-820.71C258.64,-776.41 372.85,-667.38 449.09,-591.41"/>
|
||||
<polygon fill="blue" stroke="blue" points="451.75,-593.71 456.35,-584.17 446.8,-588.76 451.75,-593.71"/>
|
||||
<path fill="none" stroke="blue" d="M261.05,-1029.47C319.14,-975.63 463.88,-830.21 560.28,-729.95"/>
|
||||
<polygon fill="blue" stroke="blue" points="563.03,-732.15 567.43,-722.51 557.98,-727.3 563.03,-732.15"/>
|
||||
</g>
|
||||
<!-- uos -->
|
||||
<g id="node13" class="node">
|
||||
<g id="node14" class="node">
|
||||
<title>uos</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="474.39" cy="-40.17" rx="39.7" ry="22.76"/>
|
||||
<text text-anchor="middle" x="474.39" y="-34.57" font-family="Indie Flower" font-size="22.00">UOS</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="621.75" cy="-34.67" rx="49.49" ry="22.76"/>
|
||||
<text text-anchor="middle" x="621.75" y="-29.07" font-family="Indie Flower" font-size="22.00">UOS</text>
|
||||
</g>
|
||||
<!-- uos->csf -->
|
||||
<g id="edge16" class="edge">
|
||||
<title>uos->csf</title>
|
||||
<path fill="none" stroke="blue" d="M476.76,-62.91C483.06,-123.25 500.52,-290.5 512.26,-402.87"/>
|
||||
<polygon fill="blue" stroke="blue" points="508.78,-403.3 513.3,-412.89 515.74,-402.58 508.78,-403.3"/>
|
||||
<path fill="none" stroke="blue" d="M622.95,-57.56C626.66,-127.99 638.11,-345.47 645.75,-490.57"/>
|
||||
<polygon fill="blue" stroke="blue" points="642.27,-491.09 646.29,-500.89 649.26,-490.72 642.27,-491.09"/>
|
||||
</g>
|
||||
<!-- html->csf -->
|
||||
<g id="edge50" class="edge">
|
||||
<g id="edge51" class="edge">
|
||||
<title>html->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M159.46,-738.34C223.1,-702.82 347.81,-627.46 433.41,-573.32"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="435.51,-576.13 442.09,-567.82 431.77,-570.22 435.51,-576.13"/>
|
||||
<path fill="none" stroke="#458b74" d="M200.04,-926.05C276.57,-879.92 433.04,-779.26 540.46,-707.62"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="542.7,-710.33 549.08,-701.87 538.82,-704.51 542.7,-710.33"/>
|
||||
</g>
|
||||
<!-- csv->csf -->
|
||||
<g id="edge44" class="edge">
|
||||
<g id="edge45" class="edge">
|
||||
<title>csv->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M112.7,-669.72C177.5,-648.8 324.08,-594.55 423.47,-555.34"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="424.92,-558.53 432.93,-551.6 422.35,-552.02 424.92,-558.53"/>
|
||||
<path fill="none" stroke="#458b74" d="M141.91,-841.87C220.72,-812.99 404.09,-738.37 528.35,-685.32"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="529.75,-688.53 537.57,-681.38 527,-682.1 529.75,-688.53"/>
|
||||
</g>
|
||||
<!-- txt->csf -->
|
||||
<g id="edge46" class="edge">
|
||||
<g id="edge47" class="edge">
|
||||
<title>txt->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M110.5,-579.8C185.7,-570.71 321.69,-550.18 417.04,-533.85"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="417.75,-537.28 427.01,-532.13 416.56,-530.38 417.75,-537.28"/>
|
||||
<path fill="none" stroke="#458b74" d="M137.37,-729.61C230.62,-714.55 400.06,-683.04 519.19,-658.93"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="520.01,-662.34 529.12,-656.92 518.62,-655.48 520.01,-662.34"/>
|
||||
</g>
|
||||
<!-- dbf->csf -->
|
||||
<g id="edge48" class="edge">
|
||||
<g id="edge49" class="edge">
|
||||
<title>dbf->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M92.04,-485.49C163.38,-493.37 311.94,-504.33 414.68,-509.78"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="414.62,-513.28 424.79,-510.3 414.98,-506.29 414.62,-513.28"/>
|
||||
<path fill="none" stroke="#458b74" d="M110.83,-614.63C200.07,-620.36 386.23,-626.86 515.33,-629.25"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="515.63,-632.75 525.69,-629.43 515.75,-625.75 515.63,-632.75"/>
|
||||
</g>
|
||||
<!-- dif->csf -->
|
||||
<g id="edge39" class="edge">
|
||||
<g id="edge40" class="edge">
|
||||
<title>dif->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M93.7,-406.64C157.66,-426.19 311.34,-465.78 416.51,-490.49"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="416,-493.96 426.53,-492.83 417.59,-487.15 416,-493.96"/>
|
||||
<path fill="none" stroke="#458b74" d="M107.81,-518.99C188.18,-538.96 383.67,-580.04 517.32,-605.75"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="516.76,-609.21 527.24,-607.66 518.08,-602.34 516.76,-609.21"/>
|
||||
</g>
|
||||
<!-- slk->csf -->
|
||||
<g id="edge31" class="edge">
|
||||
<g id="edge32" class="edge">
|
||||
<title>slk->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M118.64,-335.01C178.71,-365.35 322.62,-430.3 421.65,-472.47"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="420.52,-475.79 431.09,-476.48 423.26,-469.35 420.52,-475.79"/>
|
||||
<path fill="none" stroke="#458b74" d="M133.05,-429.77C208.72,-462.72 395.14,-535.89 522.9,-583.54"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="521.79,-586.86 532.38,-587.07 524.23,-580.3 521.79,-586.86"/>
|
||||
</g>
|
||||
<!-- prn->csf -->
|
||||
<g id="edge42" class="edge">
|
||||
<g id="edge43" class="edge">
|
||||
<title>prn->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M154.84,-261.78C206.46,-301.46 339.28,-393.89 430.59,-454.55"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="428.75,-457.53 439.02,-460.13 432.62,-451.69 428.75,-457.53"/>
|
||||
<path fill="none" stroke="#458b74" d="M172.54,-336.15C237.61,-380.33 413.03,-489.21 532.89,-560.76"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="531.4,-563.95 541.79,-566.06 534.99,-557.93 531.4,-563.95"/>
|
||||
</g>
|
||||
<!-- rtf->csf -->
|
||||
<g id="edge40" class="edge">
|
||||
<g id="edge41" class="edge">
|
||||
<title>rtf->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M202.98,-198.44C245.23,-245.28 361.45,-361.64 441.72,-438.59"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="439.73,-441.53 449.37,-445.91 444.57,-436.47 439.73,-441.53"/>
|
||||
<path fill="none" stroke="#458b74" d="M227.81,-254.01C281.6,-306.77 438.93,-447.83 546.37,-540.81"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="544.16,-543.53 554.02,-547.42 548.74,-538.23 544.16,-543.53"/>
|
||||
</g>
|
||||
<!-- wk1->csf -->
|
||||
<g id="edge33" class="edge">
|
||||
<g id="edge34" class="edge">
|
||||
<title>wk1->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M259.28,-147.61C292.3,-199.97 388.7,-336.2 455.51,-426.34"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="452.7,-428.43 461.47,-434.37 458.32,-424.26 452.7,-428.43"/>
|
||||
<path fill="none" stroke="#458b74" d="M292.35,-188.4C335.53,-247.61 470.02,-414.73 562.01,-524.97"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="559.46,-527.38 568.55,-532.81 564.83,-522.89 559.46,-527.38"/>
|
||||
</g>
|
||||
<!-- wksl -->
|
||||
<g id="node23" class="node">
|
||||
<g id="node24" class="node">
|
||||
<title>wksl</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="567" cy="-39.6" rx="45.92" ry="39.7"/>
|
||||
<text text-anchor="middle" x="567" y="-46" font-family="Indie Flower" font-size="22.00">WKS</text>
|
||||
<text text-anchor="middle" x="567" y="-22" font-family="Indie Flower" font-size="22.00">Lotus</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="735.44" cy="-39.6" rx="57.05" ry="39.7"/>
|
||||
<text text-anchor="middle" x="735.44" y="-46" font-family="Indie Flower" font-size="22.00">WKS</text>
|
||||
<text text-anchor="middle" x="735.44" y="-22" font-family="Indie Flower" font-size="22.00">Lotus</text>
|
||||
</g>
|
||||
<!-- wksl->csf -->
|
||||
<g id="edge37" class="edge">
|
||||
<g id="edge38" class="edge">
|
||||
<title>wksl->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M563.34,-79.43C556.84,-150.09 543.09,-299.61 533.6,-402.83"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="530.1,-402.7 532.67,-412.98 537.07,-403.34 530.1,-402.7"/>
|
||||
<path fill="none" stroke="#458b74" d="M729.9,-79.11C718.26,-162.16 690.77,-358.21 672.02,-492.01"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="668.55,-491.54 670.62,-501.93 675.48,-492.52 668.55,-491.54"/>
|
||||
</g>
|
||||
<!-- wk3->csf -->
|
||||
<g id="edge17" class="edge">
|
||||
<title>wk3->csf</title>
|
||||
<path fill="none" stroke="blue" d="M323.83,-107.46C347.18,-163.91 419.76,-315.36 470.73,-415.98"/>
|
||||
<polygon fill="blue" stroke="blue" points="467.64,-417.62 475.29,-424.95 473.88,-414.45 467.64,-417.62"/>
|
||||
<path fill="none" stroke="blue" d="M366.15,-135.29C398.57,-199.35 505.69,-387.4 579.47,-511.73"/>
|
||||
<polygon fill="blue" stroke="blue" points="576.6,-513.76 584.72,-520.56 582.62,-510.18 576.6,-513.76"/>
|
||||
</g>
|
||||
<!-- wk4 -->
|
||||
<g id="node25" class="node">
|
||||
<g id="node26" class="node">
|
||||
<title>wk4</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="655.24" cy="-56.25" rx="36.54" ry="22.76"/>
|
||||
<text text-anchor="middle" x="655.24" y="-50.65" font-family="Indie Flower" font-size="22.00">WK4</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="841.42" cy="-64.53" rx="44.6" ry="22.76"/>
|
||||
<text text-anchor="middle" x="841.42" y="-58.93" font-family="Indie Flower" font-size="22.00">WK4</text>
|
||||
</g>
|
||||
<!-- wk4->csf -->
|
||||
<g id="edge19" class="edge">
|
||||
<title>wk4->csf</title>
|
||||
<path fill="none" stroke="blue" d="M648.71,-78.83C631.69,-137.71 585.11,-298.83 553.84,-406.99"/>
|
||||
<polygon fill="blue" stroke="blue" points="550.47,-406.05 551.06,-416.63 557.2,-408 550.47,-406.05"/>
|
||||
<path fill="none" stroke="blue" d="M833.91,-86.96C811.3,-154.55 742.56,-360.05 696.61,-497.37"/>
|
||||
<polygon fill="blue" stroke="blue" points="693.2,-496.55 693.35,-507.14 699.84,-498.77 693.2,-496.55"/>
|
||||
</g>
|
||||
<!-- 123 -->
|
||||
<g id="node26" class="node">
|
||||
<g id="node27" class="node">
|
||||
<title>123</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="725.42" cy="-82.72" rx="31.23" ry="22.76"/>
|
||||
<text text-anchor="middle" x="725.42" y="-77.12" font-family="Indie Flower" font-size="22.00">123</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="923.59" cy="-99.07" rx="37.45" ry="22.76"/>
|
||||
<text text-anchor="middle" x="923.59" y="-93.47" font-family="Indie Flower" font-size="22.00">123</text>
|
||||
</g>
|
||||
<!-- 123->csf -->
|
||||
<g id="edge20" class="edge">
|
||||
<title>123->csf</title>
|
||||
<path fill="none" stroke="blue" d="M715.27,-104.28C689.09,-159.93 617.94,-311.12 570.09,-412.81"/>
|
||||
<polygon fill="blue" stroke="blue" points="566.91,-411.34 565.82,-421.88 573.25,-414.32 566.91,-411.34"/>
|
||||
<path fill="none" stroke="blue" d="M912.48,-120.79C879.65,-184.93 781.3,-377.1 715.55,-505.56"/>
|
||||
<polygon fill="blue" stroke="blue" points="712.31,-504.2 710.87,-514.7 718.54,-507.39 712.31,-504.2"/>
|
||||
</g>
|
||||
<!-- wksm -->
|
||||
<g id="node27" class="node">
|
||||
<g id="node28" class="node">
|
||||
<title>wksm</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="801.54" cy="-127.65" rx="50.41" ry="39.7"/>
|
||||
<text text-anchor="middle" x="801.54" y="-134.05" font-family="Indie Flower" font-size="22.00">WKS</text>
|
||||
<text text-anchor="middle" x="801.54" y="-110.05" font-family="Indie Flower" font-size="22.00">Works</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="1014.43" cy="-156.49" rx="62.87" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1014.43" y="-162.89" font-family="Indie Flower" font-size="22.00">WKS</text>
|
||||
<text text-anchor="middle" x="1014.43" y="-138.89" font-family="Indie Flower" font-size="22.00">Works</text>
|
||||
</g>
|
||||
<!-- wksm->csf -->
|
||||
<g id="edge38" class="edge">
|
||||
<g id="edge39" class="edge">
|
||||
<title>wksm->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M776.63,-162.06C734.46,-220.3 647.76,-340.08 587.68,-423.07"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="584.8,-421.08 581.77,-431.23 590.47,-425.19 584.8,-421.08"/>
|
||||
<path fill="none" stroke="#458b74" d="M986.97,-192.3C934.3,-260.97 817.2,-413.67 736.66,-518.69"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="733.75,-516.73 730.44,-526.8 739.3,-520.99 733.75,-516.73"/>
|
||||
</g>
|
||||
<!-- xlr -->
|
||||
<g id="node28" class="node">
|
||||
<g id="node29" class="node">
|
||||
<title>xlr</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="870.41" cy="-188.5" rx="34.8" ry="22.76"/>
|
||||
<text text-anchor="middle" x="870.41" y="-182.9" font-family="Indie Flower" font-size="22.00">XLR</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="1096.74" cy="-233.01" rx="42.35" ry="22.76"/>
|
||||
<text text-anchor="middle" x="1096.74" y="-227.41" font-family="Indie Flower" font-size="22.00">XLR</text>
|
||||
</g>
|
||||
<!-- xlr->csf -->
|
||||
<g id="edge35" class="edge">
|
||||
<g id="edge36" class="edge">
|
||||
<title>xlr->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M850.52,-207.03C803.74,-250.61 684.62,-361.59 603.85,-436.83"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="601.08,-434.62 596.15,-444 605.86,-439.74 601.08,-434.62"/>
|
||||
<path fill="none" stroke="#458b74" d="M1074.74,-252.59C1017.52,-303.49 861.23,-442.54 755.83,-536.3"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="753.48,-533.71 748.34,-542.97 758.13,-538.94 753.48,-533.71"/>
|
||||
</g>
|
||||
<!-- wq1 -->
|
||||
<g id="node29" class="node">
|
||||
<g id="node30" class="node">
|
||||
<title>wq1</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="919.38" cy="-250.79" rx="37.45" ry="22.76"/>
|
||||
<text text-anchor="middle" x="919.38" y="-245.19" font-family="Indie Flower" font-size="22.00">WQ1</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="1154.27" cy="-309.22" rx="45.92" ry="22.76"/>
|
||||
<text text-anchor="middle" x="1154.27" y="-303.62" font-family="Indie Flower" font-size="22.00">WQ1</text>
|
||||
</g>
|
||||
<!-- wq1->csf -->
|
||||
<g id="edge36" class="edge">
|
||||
<g id="edge37" class="edge">
|
||||
<title>wq1->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M894.02,-267.5C838.76,-303.91 705.19,-391.93 614.49,-451.7"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="612.55,-448.78 606.13,-457.21 616.4,-454.63 612.55,-448.78"/>
|
||||
<path fill="none" stroke="#458b74" d="M1125.88,-327.27C1058.55,-370.06 886.04,-479.69 769.09,-554.02"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="766.97,-551.21 760.41,-559.53 770.73,-557.12 766.97,-551.21"/>
|
||||
</g>
|
||||
<!-- wq2 -->
|
||||
<g id="node30" class="node">
|
||||
<g id="node31" class="node">
|
||||
<title>wq2</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="959.82" cy="-326.2" rx="41.02" ry="39.7"/>
|
||||
<text text-anchor="middle" x="959.82" y="-332.6" font-family="Indie Flower" font-size="22.00">WQ2</text>
|
||||
<text text-anchor="middle" x="959.82" y="-308.6" font-family="Indie Flower" font-size="22.00">WB*</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="1201.86" cy="-400.84" rx="50.41" ry="39.7"/>
|
||||
<text text-anchor="middle" x="1201.86" y="-407.24" font-family="Indie Flower" font-size="22.00">WQ2</text>
|
||||
<text text-anchor="middle" x="1201.86" y="-383.24" font-family="Indie Flower" font-size="22.00">WB*</text>
|
||||
</g>
|
||||
<!-- wq2->csf -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>wq2->csf</title>
|
||||
<path fill="none" stroke="blue" d="M922.26,-342.17C856.65,-370.05 719.17,-428.48 624.14,-468.86"/>
|
||||
<polygon fill="blue" stroke="blue" points="622.63,-465.7 614.79,-472.83 625.37,-472.14 622.63,-465.7"/>
|
||||
<path fill="none" stroke="blue" d="M1156.95,-419.41C1075.47,-453.1 900.6,-525.41 779.9,-575.32"/>
|
||||
<polygon fill="blue" stroke="blue" points="778.49,-572.12 770.58,-579.18 781.16,-578.59 778.49,-572.12"/>
|
||||
</g>
|
||||
<!-- qpw -->
|
||||
<g id="node31" class="node">
|
||||
<g id="node32" class="node">
|
||||
<title>qpw</title>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="987.11" cy="-412.49" rx="42.35" ry="22.76"/>
|
||||
<text text-anchor="middle" x="987.11" y="-406.89" font-family="Indie Flower" font-size="22.00">QPW</text>
|
||||
<ellipse fill="cyan" stroke="cyan" cx="1234.36" cy="-506.22" rx="53.07" ry="22.76"/>
|
||||
<text text-anchor="middle" x="1234.36" y="-500.62" font-family="Indie Flower" font-size="22.00">QPW</text>
|
||||
</g>
|
||||
<!-- qpw->csf -->
|
||||
<g id="edge21" class="edge">
|
||||
<title>qpw->csf</title>
|
||||
<path fill="none" stroke="blue" d="M947.59,-420.94C877.99,-435.82 731.36,-467.17 630.19,-488.8"/>
|
||||
<polygon fill="blue" stroke="blue" points="629.29,-485.41 620.24,-490.93 630.75,-492.26 629.29,-485.41"/>
|
||||
<path fill="none" stroke="blue" d="M1186.29,-516.27C1099.79,-534.36 915.04,-573 787.43,-599.69"/>
|
||||
<polygon fill="blue" stroke="blue" points="786.65,-596.28 777.58,-601.75 788.08,-603.13 786.65,-596.28"/>
|
||||
</g>
|
||||
<!-- eth->csf -->
|
||||
<g id="edge53" class="edge">
|
||||
<g id="edge54" class="edge">
|
||||
<title>eth->csf</title>
|
||||
<path fill="none" stroke="#458b74" d="M395.8,-78.94C409.08,-138.35 454.86,-300.58 487.94,-408.62"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="484.62,-409.72 490.9,-418.25 491.31,-407.67 484.62,-409.72"/>
|
||||
<path fill="none" stroke="#458b74" d="M451.1,-94.02C472.2,-161.82 547.11,-365.74 599.55,-501"/>
|
||||
<polygon fill="#458b74" stroke="#458b74" points="596.4,-502.56 603.28,-510.61 602.92,-500.03 596.4,-502.56"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 234 KiB After Width: | Height: | Size: 235 KiB |