Excel 코드 추가
This commit is contained in:
parent
f3506c37b5
commit
6f0ecab261
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e042717589682a54f9ce41ea0e4f0259
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2ee477d4e8830924dacd274dbee5890a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -21,7 +21,6 @@ public class PlayerAttack : MonoBehaviour
|
|||
controller = GetComponent<PlayerController>();
|
||||
animator = GetComponentInChildren<Animator>();
|
||||
PlayManager.Instance.leftMouve += Attack;
|
||||
Debug.Log(123);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,200 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using ClosedXML.Excel;
|
||||
|
||||
public class Excel
|
||||
{
|
||||
private List<Sheet> datas;
|
||||
public List<Sheet> getDatas { get { return datas; } }
|
||||
|
||||
// 좀더 고도화가 필요함.
|
||||
//public Sheet findSheet(string sheetName) {
|
||||
// int index = datas.FindIndex(n => n.name == sheetName);
|
||||
// if(index == -1)
|
||||
// {
|
||||
// Debug.Log("null exception");
|
||||
// return null;
|
||||
// }
|
||||
// return datas[index];
|
||||
//}
|
||||
|
||||
#region Dynamic
|
||||
//이러한 형태로 사용할것
|
||||
public Dynamic dynamic;
|
||||
|
||||
public class Dynamic
|
||||
{
|
||||
List<Data> datas;
|
||||
|
||||
public float selectVelue(string name)
|
||||
{
|
||||
return datas.Find(n => n.name.Equals(name)).velue;
|
||||
}
|
||||
|
||||
|
||||
public Dynamic(Sheet sheet)
|
||||
{
|
||||
datas = new List<Data>();
|
||||
foreach (var item in sheet.dicViewer)
|
||||
{
|
||||
Data data = new Data((string)item.Value["name"], (float)item.Value["velue"]);
|
||||
datas.Add(data);
|
||||
}
|
||||
}
|
||||
|
||||
public class Data
|
||||
{
|
||||
public string name;
|
||||
public float velue;
|
||||
|
||||
public Data(string name, float velue)
|
||||
{
|
||||
this.name = name;
|
||||
this.velue = velue;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
public Excel()
|
||||
{
|
||||
ExcelManager excel = new ExcelManager();
|
||||
|
||||
//Dynamic, Unit
|
||||
excel.Add("Datas.xlsx");
|
||||
|
||||
datas = excel.Play();
|
||||
|
||||
dynamic = new Dynamic(datas.Find(n => n.name.Equals("Dynamic")));
|
||||
}
|
||||
|
||||
public class Sheet
|
||||
{
|
||||
string _name;
|
||||
public string name { get { return _name; } }
|
||||
List<string> _variable;
|
||||
public List<string> variable { get { return _variable; } }
|
||||
List<string> _dataEnum;
|
||||
public List<string> dataEnum { get { return _dataEnum; } }
|
||||
List<string> _type;
|
||||
public List<string> type { get { return _type; } }
|
||||
Dictionary<long, Dictionary<string, object>> _dicViewer;
|
||||
public Dictionary<long, Dictionary<string, object>> dicViewer { get { return _dicViewer; } }
|
||||
|
||||
public Sheet(string name, List<string> variable, List<string> dataEnum, List<string> type, Dictionary<long, Dictionary<string, object>> dicViewer)
|
||||
{
|
||||
this._name = name;
|
||||
this._variable = variable;
|
||||
this._dataEnum = dataEnum;
|
||||
this._type = type;
|
||||
this._dicViewer = dicViewer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Sheet(Sheet sheet)
|
||||
{
|
||||
this._name = new string(sheet.name);
|
||||
this._variable = new List<string>(sheet.variable);
|
||||
this._dataEnum = new List<string>(sheet.dataEnum);
|
||||
this._type = new List<string>(type);
|
||||
this._dicViewer = new Dictionary<long, Dictionary<string, object>>(dicViewer);
|
||||
}
|
||||
}
|
||||
|
||||
class ExcelManager
|
||||
{
|
||||
readonly string path = Application.dataPath + "/07_Excel/";
|
||||
|
||||
List<Sheet> _sheets;
|
||||
|
||||
List<string> readList;
|
||||
|
||||
public ExcelManager()
|
||||
{
|
||||
_sheets = new List<Sheet>();
|
||||
readList = new List<string>();
|
||||
}
|
||||
public void Add(string file)
|
||||
{
|
||||
readList.Add(path + file);
|
||||
}
|
||||
|
||||
public List<Sheet> Play()
|
||||
{
|
||||
for (int n = 0; n < readList.Count; n++)
|
||||
if (!ExcelLoad(readList[n]))
|
||||
return null;
|
||||
return _sheets;
|
||||
}
|
||||
public bool ExcelLoad(string pathFile)
|
||||
{
|
||||
_sheets = new List<Sheet>();
|
||||
// 엑셀 파일을 엽니다.
|
||||
using (var workbook = new XLWorkbook(pathFile))
|
||||
{
|
||||
// 모든 워크시트를 반복합니다.
|
||||
foreach (var worksheet in workbook.Worksheets)
|
||||
{
|
||||
// 변수 이름, 데이터 타입, 데이터 열거형, 딕셔너리 초기화
|
||||
var variable = new List<string>(); // 변수명
|
||||
var dataEnum = new List<string>(); // server와 client를 나눌 기준
|
||||
var type = new List<string>(); // 변수 타입
|
||||
var dicViewer = new Dictionary<long, Dictionary<string, object>>();
|
||||
|
||||
// 행과 열의 수 얻기
|
||||
var vertical = worksheet.RangeUsed().RowCount() - 1; // 데이터가 있는 행의 수
|
||||
var horizontal = worksheet.RangeUsed().ColumnCount() - 1; // 데이터가 있는 열의 수
|
||||
|
||||
// 변수 이름과 타입을 삽입
|
||||
for (int n = 0; n <= horizontal; n++)
|
||||
{
|
||||
variable.Add(worksheet.Cell(1, n + 1).GetValue<string>());
|
||||
type.Add(worksheet.Cell(4, n + 1).GetValue<string>().ToLower());
|
||||
dataEnum.Add(worksheet.Cell(3, n + 1).GetValue<string>().ToLower());
|
||||
}
|
||||
|
||||
bool isIndex = variable[0] == "index";
|
||||
|
||||
for (int n = 5; n <= vertical + 1; n++)
|
||||
{
|
||||
var dataList = new Dictionary<string, object>();
|
||||
for (int m = 0; m <= horizontal; m++)
|
||||
{
|
||||
object getData;
|
||||
switch (type[m])
|
||||
{
|
||||
case "bool":
|
||||
getData = (worksheet.Cell(n, m + 1).Value.ToString() == "true");
|
||||
break;
|
||||
case "int":
|
||||
case "enum":
|
||||
getData = (int)worksheet.Cell(n, m + 1).Value;
|
||||
break;
|
||||
case "long":
|
||||
getData = (long)worksheet.Cell(n, m + 1).Value;
|
||||
break;
|
||||
case "float":
|
||||
getData = (float)worksheet.Cell(n, m + 1).Value;
|
||||
break;
|
||||
case "time":
|
||||
getData = (DateTime)worksheet.Cell(n, m + 1).Value;
|
||||
break;
|
||||
default:
|
||||
getData = worksheet.Cell(n, m + 1).Value.ToString();
|
||||
break;
|
||||
}
|
||||
dataList.Add(variable[m], getData);
|
||||
}
|
||||
dicViewer.Add((isIndex ? (long)dataList["index"] : n - 4), dataList);
|
||||
}
|
||||
|
||||
var sheet = new Sheet(worksheet.Name, variable, dataEnum, type, dicViewer);
|
||||
_sheets.Add(sheet);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: eb4aa7119d8b57f4db1e2afc5e9d38d0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -4,10 +4,17 @@ using UnityEngine.SceneManagement;
|
|||
public class GameManager : DontDestroy<GameManager>
|
||||
{
|
||||
eScene nowScene;
|
||||
|
||||
Excel excel;
|
||||
|
||||
protected override void OnAwake()
|
||||
{
|
||||
Application.targetFrameRate = 120;
|
||||
nowScene = eScene.Title;
|
||||
excel = new Excel();
|
||||
|
||||
//사용법
|
||||
//Debug.Log(excel.dynamic.selectVelue("maxSwingCount"));
|
||||
}
|
||||
|
||||
public enum eScene
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" enableCredentialProvider="false" />
|
||||
</packageSources>
|
||||
<disabledPackageSources />
|
||||
<activePackageSource>
|
||||
<add key="All" value="(Aggregate source)" />
|
||||
</activePackageSource>
|
||||
<config>
|
||||
<add key="packageInstallLocation" value="CustomWithinAssets" />
|
||||
<add key="repositoryPath" value="./Packages" />
|
||||
<add key="PackagesConfigDirectoryPath" value="." />
|
||||
<add key="slimRestore" value="true" />
|
||||
<add key="PreferNetStandardOverNetFramework" value="true" />
|
||||
</config>
|
||||
</configuration>
|
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 356dafd8e98638044a64b00c1dfedcfe
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 25b0fa346755490449d30977235edb0c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fef594bf8aaa2ed4facf818ed7a17fc1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>ClosedXML</id>
|
||||
<version>0.105.0</version>
|
||||
<authors>Jan Havlíček, Francois Botha, Aleksei Pankratev, Manuel de Leon, Amir Ghezelbash</authors>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<icon>nuget-logo.png</icon>
|
||||
<projectUrl>https://github.com/ClosedXML/ClosedXML</projectUrl>
|
||||
<description>See release notes https://github.com/ClosedXML/ClosedXML/releases/tag/0.105.0 ClosedXML is a .NET library for reading, manipulating and writing Excel 2007+ (.xlsx, .xlsm) files. It aims to provide an intuitive and user-friendly interface to dealing with the underlying OpenXML API.</description>
|
||||
<releaseNotes>See https://github.com/ClosedXML/ClosedXML/releases/tag/0.105.0</releaseNotes>
|
||||
<tags>Excel OpenXml xlsx</tags>
|
||||
<repository type="git" url="https://github.com/ClosedXML/ClosedXML" commit="d15f6690886801980c0d83b7eb1d1b5d2171ad31" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="ClosedXML.Parser" version="2.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="DocumentFormat.OpenXml" version="[3.1.1, 4.0.0)" exclude="Build,Analyzers" />
|
||||
<dependency id="ExcelNumberFormat" version="1.1.0" exclude="Build,Analyzers" />
|
||||
<dependency id="Microsoft.Bcl.HashCode" version="1.1.1" exclude="Build,Analyzers" />
|
||||
<dependency id="RBush.Signed" version="4.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="SixLabors.Fonts" version="1.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="System.Buffers" version="4.5.1" exclude="Build,Analyzers" />
|
||||
<dependency id="System.Memory" version="4.5.5" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.1">
|
||||
<dependency id="ClosedXML.Parser" version="2.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="DocumentFormat.OpenXml" version="[3.1.1, 4.0.0)" exclude="Build,Analyzers" />
|
||||
<dependency id="ExcelNumberFormat" version="1.1.0" exclude="Build,Analyzers" />
|
||||
<dependency id="RBush.Signed" version="4.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="SixLabors.Fonts" version="1.0.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cf271e402076be14b84b93a9ae8abd89
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b00e5f0234ac7fa439e337eaf57548e5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 755d2fd9f0ec1bc43a10fcd9002a3e74
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 42d57c3664c1ca04a9c903160812bfd4
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f086d878f0d30a743ab11ae3250131a2
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
|
@ -0,0 +1,136 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bf51a5f6ee470a8419eaf4c1f06f3809
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -2711032071728996648
|
||||
second: nuget-logo_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: nuget-logo_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 47
|
||||
y: 48
|
||||
width: 1115
|
||||
height: 1114
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 8ded6e5c1ba706ad0800000000000000
|
||||
internalID: -2711032071728996648
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f413557a3535e9245a5a79a44827ded8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>ClosedXML.Parser</id>
|
||||
<version>2.0.0</version>
|
||||
<authors>Jan Havlíček</authors>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<readme>README.md</readme>
|
||||
<projectUrl>https://github.com/ClosedXML/ClosedXML.Parser</projectUrl>
|
||||
<description>A lexer and parser of Excel formulas with focus on performance. Its goal is to create
|
||||
an abstract syntax tree from a formula text to enable formula evaluation.</description>
|
||||
<tags>ClosedXML parser formula xlsx</tags>
|
||||
<repository type="git" url="https://github.com/ClosedXML/ClosedXML.Parser" commit="658973aeedc2fe289e0ccba2bb9959f67692ded5" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="System.Memory" version="4.5.4" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.1" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e069c8f7dbef6244bb827161e98c4fab
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,110 @@
|
|||
# ClosedParser
|
||||
|
||||
ClosedParser is a project to parse OOXML grammar to create an abstract syntax tree that can be later evaluated.
|
||||
|
||||
Official source for the grammar is [MS-XML](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-xlsx/2c5dee00-eff2-4b22-92b6-0738acd4475e), chapter 2.2.2 Formulas. The provided grammar is not usable for parser generators, it's full of ambiguities and the rules don't take into account operator precedence.
|
||||
|
||||
# How to use
|
||||
|
||||
* Implement `IAstFactory` interface.
|
||||
* Call parsing methods
|
||||
* `FormulaParser<TScalarValue, TNode>.CellFormulaA1("Sum(A1, 2)", astFactory)`
|
||||
* `FormulaParser<TScalarValue, TNode>.CellFormulaR1C1("Sum(R1C1, 2)", astFactory)`
|
||||
|
||||
## Visualizer
|
||||
There is a visualizer to display AST in a browser at **[https://parser.closedxml.io](https://parser.closedxml.io)**
|
||||
|
||||

|
||||
|
||||
# Goals
|
||||
|
||||
* __Performance__ - ClosedXML needs to parse formula really fast. Limit allocation and so on.
|
||||
* __Evaluation oriented__ - Parser should concentrates on creation of abstract syntax trees, not concrete syntax tree. Goal is evaluation of formulas, not transformation.
|
||||
* __Multi-use__ - Formulas are mostly used in cells, but there are other places with different grammar rules (e.g. sparklines, data validation)
|
||||
* __Multi notation (A1 or R1C1)__ - Parser should be able to parse both A1 and R1C1 formulas. I.e. `SUM(R5)` can mean return sum of cell `R5` in _A1_ notation, but return sum of all cells on row 5 in _R1C1_ notation.
|
||||
|
||||
Project uses ANTLR4 grammar file as the source of truth and a lexer. There is also ANTLR parser is not used, but is used as a basis of recursive descent parser (ANTLR takes up 8 seconds vs RDS 700ms for parsing of enron dataset).
|
||||
|
||||
ANTLR4 one of few maintained parser generators with C# target.
|
||||
|
||||
The project has a low priority, XLParser mostly works, but in the long term, replacement is likely.
|
||||
|
||||
## Current performance
|
||||
|
||||
ENRON dataset parsed using recursive descent parser and DFA lexer in Release mode:
|
||||
|
||||
* Total: *946320*
|
||||
* Elapsed: *1838 ms*
|
||||
* Per formula: *1.942 μs*
|
||||
|
||||
2μs per formula should be something like 6000 instructions (under unrealistic assumption 1 instruction per 1 Hz), so basically fast enough.
|
||||
|
||||
## Limitations
|
||||
|
||||
The primary goal is to parse formulas stored in file, not user supplied formulas. The formulas displayed in the GUI is not the same as formula stored in the file. Several examples:
|
||||
* The IFS function is a part of future functions. In the file, it is stored as `_xlfn.IFS`, but user sees `IFS`
|
||||
* In the structured references, user sees @ as an indication that structured references this row, but in reality it is a specifier `[#This Row]`
|
||||
|
||||
Therefore:
|
||||
* External references are accepted only in form of an index to an external file (e.g. `[5]`)
|
||||
* There are several formula implementations out there with slighly different grammar incompatible with OOXML formulas (`[1]!'Some name in external wb'`). They are out of scope of the project.
|
||||
|
||||
# Why not use XLParser
|
||||
|
||||
ClosedXML is currently using [XLParser](https://github.com/spreadsheetlab/XLParser) and transforming the concrete syntax tree to abstract syntax tree.
|
||||
|
||||
* Speed:
|
||||
* Grammar extensively uses regexps extensively. Regexs are slow, especially for NET4x target, allocates extra memory. XLParser takes up _47_ seconds for Enron dataset on .NET Framework. .NET teams had made massive improvements on regexs, so it takes only _16_ seconds on NET7.
|
||||
* IronParser needs to determine all possible tokens after every token, that is problematic, even with the help of `prefix` hints.
|
||||
* AST: XLParser creates concentrates on creation of concrete syntax tree, but for ClosedXML, we need abstract syntax tree for evaluation. IronParser is not very friendly in that regard
|
||||
* ~~XLParser uses `IronParser`, an unmaintained project~~ (IronParser recently released version 1.2).
|
||||
* Doesn't have support for lambdas and R1C1 style.
|
||||
|
||||
ANTLR lexer takes up about 3.2 seconds for Enron dataset. With ANTLR parsing, it takes up 11 seconds. I want that 7+ seconds in performance and no allocation, so RDS that takes up 700 ms.
|
||||
|
||||
## Debugging
|
||||
|
||||
Use [vscode-antlr4](https://github.com/mike-lischke/vscode-antlr4/blob/master/doc/grammar-debugging.md) plugin for debugging the grammar.
|
||||
|
||||
## Testing strategy
|
||||
|
||||
* Each token that contains some data that are extracted for a node (e.g. `A1_REFERENCE` `C5` to `row 5`, `column 3`) has a separate test class in `Lexers` directory with a `{TokenPascalName}TokenTests.cs`
|
||||
* Each parser rule has a test class in `Rules` directory. It should contain all possible combinatins of a rule and comparing it with the AST nodes.
|
||||
* Data set tests are in `DataSetTests.cs`. Each test tries to parse formula and ensures that **ANTLR** can parse it RDS can and can't parse a formula when **ANTLR** can't. There is no check of the output, just that formulas can be parsed. Data are contained in a `data` directory in CSV format with a one column.
|
||||
|
||||
## Rolex
|
||||
|
||||
Rolex is a DFA based lexer released under MIT license (see [Rolex: Unicode Enabled Lexer Generator in C#
|
||||
](https://www.codeproject.com/Articles/5257489/Rolex-Unicode-Enabled-Lexer-Generator-in-Csharp)). ANTLR is still the source of truth, but it is used to generate Rolex grammar and then DFA for a lexer.
|
||||
|
||||
It is rather complicated, but two times faster than ANTLR lexer (1.9 us vs 3.676 us per formula).
|
||||
|
||||
## Generate lexer
|
||||
|
||||
Prepare rolex grammars
|
||||
* Run Antlr2Rolex over FormulaLexer.g4 with A1 version to *ClosedXML.Parser\Rolex\LexerA1.rl*
|
||||
* Add `/*` at the beginning of *Local A1 References* section. It comments out A1_REFERENCE and all its fragments
|
||||
* Remove `/*` at the beinning of *Local R1C1 References* section. It contains a different tokens for A1_REFERENCE and its fragments
|
||||
* Run Antlr2Rolex over FormulaLexer.g4 with R1C1 version to *ClosedXML.Parser\Rolex\LexerR1C1.rl*
|
||||
|
||||
Fix Rolex generator
|
||||
* Fix bug in Rolex generator that doesn't recognize property \u1234 (just add `pc.Advance()` to FFA.cs `_ParseEscapePart` and `_ParseRangeEscapePart`]
|
||||
|
||||
Generate a DFA through Rolex
|
||||
* `Rolex.exe ClosedXML.Parser\Rolex\LexerA1.rl /noshared /output ClosedXML.Parser\Rolex\RolexA1Dfa.cs /namespace ClosedXML.Parser.Rolex`
|
||||
* `Rolex.exe ClosedXML.Parser\Rolex\LexerR1C1.rl /noshared /output ClosedXML.Parser\Rolex\RolexR1C1Dfa.cs /namespace ClosedXML.Parser.Rolex`
|
||||
|
||||
# TODO
|
||||
|
||||
* Lexer generation during build
|
||||
* Proper CI pipeline.
|
||||
* Azure Function
|
||||
* Web
|
||||
* Fuzzer
|
||||
* PR to Rolex to fix unicode bug.
|
||||
|
||||
# Resources
|
||||
|
||||
* [MS-XML](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-xlsx/2c5dee00-eff2-4b22-92b6-0738acd4475e)
|
||||
* [Simplified XLParser grammar](https://github.com/spreadsheetlab/XLParser/blob/master/doc/ebnf.pdf) and [tokens](https://github.com/spreadsheetlab/XLParser/blob/master/doc/tokens.pdf).
|
||||
* [Getting Started With ANTLR in C#](https://tomassetti.me/getting-started-with-antlr-in-csharp/)
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c3a6215bf7dfdc44996df1eabc043aee
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b803e21223f01904ab6232bb13f395ec
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 37bd988331a96c145a1278f4000f8b0e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.dll
vendored
Normal file
BIN
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.dll
vendored
Normal file
Binary file not shown.
23
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.dll.meta
vendored
Normal file
23
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.dll.meta
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f6bc54dd6d18bab4ba6809be20178303
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
1522
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.xml
vendored
Normal file
1522
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.xml.meta
vendored
Normal file
7
Assets/Packages/ClosedXML.Parser.2.0.0/lib/netstandard2.1/ClosedXML.Parser.xml.meta
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ec479c8a0ea6653498cc0a2b3c3c6da6
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c368605d6f5d22a4189290c37e0a5379
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,556 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>DocumentFormat.OpenXml</id>
|
||||
<version>3.1.1</version>
|
||||
<authors>Microsoft</authors>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<icon>icon.png</icon>
|
||||
<readme>README.md</readme>
|
||||
<projectUrl>https://github.com/dotnet/Open-XML-SDK</projectUrl>
|
||||
<iconUrl>https://raw.githubusercontent.com/dotnet/Open-XML-SDK/master/icon.png</iconUrl>
|
||||
<description>The Open XML SDK provides tools for working with Office Word, Excel, and PowerPoint documents. It supports scenarios such as:
|
||||
|
||||
- High-performance generation of word-processing documents, spreadsheets, and presentations.
|
||||
- Populating content in Word files from an XML data source.
|
||||
- Splitting up (shredding) a Word or PowerPoint file into multiple files, and combining multiple Word/PowerPoint files into a single file.
|
||||
- Extraction of data from Excel documents.
|
||||
- Searching and replacing content in Word/PowerPoint using regular expressions.
|
||||
- Updating cached data and embedded spreadsheets for charts in Word/PowerPoint.
|
||||
- Document modification, such as removing tracked revisions or removing unacceptable content from documents.</description>
|
||||
<releaseNotes># Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.1.1] - 2024-10-15
|
||||
|
||||
### Fixed
|
||||
|
||||
- Updated System.IO.Packaging and other dependencies (#1794, #1795, #1796, #1782, #1808)
|
||||
- Fixed add c16:uniqueId to several chart complex types (#1762)
|
||||
- Fixed <remarks> rather than <remark> in the documentation comments (#1775)
|
||||
|
||||
## [3.1.0] - 2024-07-30
|
||||
|
||||
### Added
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotAutoRefresh` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotDynamicArrays` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.DataSourceVersioning` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.ExternalCodeService` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.Pivot2023Calculation` namespace
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where `OpenXmlUnknownElement` is returned instead of `CommentPropertiesExtension` (#1751)
|
||||
- Fixed issue where `OpenXmlWriter` is unable to write `SharedStringTablePart` (#1755)
|
||||
|
||||
## [3.0.2] - 2024-03-14
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where temp files were shareable and not deleted on close (#1658)
|
||||
|
||||
## [3.0.1] - 2024-01-09
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where document type would not be correct unless content type was checked first (#1625)
|
||||
- Added check to only seek on packages where it is supported (#1644)
|
||||
- If a malformed URI is encountered, the exception is now the same as v2.x (`OpenXmlPackageException` with an inner `UriFormatException`) (#1644)
|
||||
|
||||
## [3.0.0] - 2023-11-15
|
||||
|
||||
### Added
|
||||
|
||||
- Packages can now be saved on .NET Core and .NET 5+ if constructed with a path or stream (#1307).
|
||||
- Packages can now support malformed URIs (such as relationships with a URI such as `mailto:person@`)
|
||||
- Introduce equality comparers for `OpenXmlElement` (#1476)
|
||||
- `IFeatureCollection` can now be enumerated and has a helpful debug view to see what features are registered (#1452)
|
||||
- Add mime types to part creation (#1488)
|
||||
- `DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main` namespace
|
||||
- `DocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main` namespace
|
||||
- `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021` namespace
|
||||
|
||||
### Changed
|
||||
|
||||
- When validation finds incorrect part, it will now include the relationship type rather than a class name
|
||||
- `IDisposableFeature` is now a part of the framework package and is available by default on a package or part.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- .NET Standard 1.3 is no longer a supported platform. .NET Standard 2.0 is the lowest .NET Standard supported.
|
||||
- Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.
|
||||
- Changed type of `OpenXmlPackage.Package` to `DocumentFormat.OpenXml.Packaging.IPackage` instead of `System.IO.Packaging.Package` with a similar API surface
|
||||
- `EnumValue<T>` now is used to box a struct rather than a `System.Enum`. This allows us to enable behavior on it without resorting to reflection
|
||||
- Methods on parts to add child parts (i.e. `AddImagePart`) are now implemented as extension methods off of a new marker interface `ISupportedRelationship<T>`
|
||||
- Part type info enums (i.e. `ImagePartType`) is no longer an enum, but a static class to expose well-known part types as structs. Now any method to define a new content-type/extension pair can be called with the new `PartTypeInfo` struct that will contain the necessary information.
|
||||
- `OpenXmlPackage.CanSave` is now an instance property (#1307)
|
||||
- Removed `OpenXmlSettings.RelationshipErrorHandlerFactory` and associated types and replaced with a built-in mechanism to enable this
|
||||
- `IdPartPair` is now a readonly struct rather than a class
|
||||
- Renamed `PartExtensionProvider` to `IPartExtensionFeature` and reduced its surface area to only two methods (instead of a full `Dictionary<,>`). The property to access this off of `OpenXmlPackage` has been removed, but may be accessed via `Features.Get<IPartExtensionFeature>()` if needed.
|
||||
- `OpenXmlPart`/`OpenXmlContainer`/`OpenXmlPackage` and derived types now have internal constructors (these had internal abstract methods so most likely weren't subclassed externally)
|
||||
- `OpenXmlElementList` is now a struct that implements `IEnumerable<OpenXmlElement>` and `IReadOnlyList<OpenXmlElement>` where available (#1429)
|
||||
- Individual implementations of `OpenXmlPartReader` are available now for each package type (i.e. `WordprocessingDocumentPartReader`, `SpreadsheetDocumentPartReader`, `PresentationDocumentPartReader`), and the previous `TypedOpenXmlPartReader` has been removed. (#1403)
|
||||
- Reduced unnecessary target frameworks for packages besides DocumentFormat.OpenXml.Framework (#1471)
|
||||
- Changed some spelling issues for property names (#1463, #1444)
|
||||
- `Model3D` now represents the modified xml element tag name `am3d.model3d` (Previously `am3d.model3D`)
|
||||
- Removed `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo`
|
||||
- Removed `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid`
|
||||
- Removed unused `SchemaAttrAttribute` (#1316)
|
||||
- Removed unused `ChildElementInfoAttribute` (#1316)
|
||||
- Removed `OpenXmlSimpleType.TextValue`. This property was never meant to be used externally (#1316)
|
||||
- Removed obsolete validation logic from v1 of the SDK (#1316)
|
||||
- Removed obsoleted methods from 2.x (#1316)
|
||||
- Removed mutable properties on OpenXmlAttribute and marked as `readonly` (#1282)
|
||||
- Removed `OpenXmlPackage.Close` in favor of `Dispose` (#1373)
|
||||
- Removed `OpenXmlPackage.SaveAs` in favor of `Clone` (#1376)
|
||||
|
||||
## [2.20.0]
|
||||
|
||||
### Added
|
||||
|
||||
- Added DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula namespace
|
||||
- Added DocumentFormat.OpenXml.Office.Word.Y2023.WordML.Word16DU namespace
|
||||
|
||||
### Changed
|
||||
|
||||
- Marked `OpenXmlSimpleType.TextValue` as obsolete. This property was never meant to be used externally (#1284)
|
||||
- Marked `OpenXmlPackage.Package` as obsolete. This will be an implementation detail in future versions and won't be accessible (#1306)
|
||||
- Marked `OpenXmlPackage.Close` as obsolete. This will be removed in a later release, use Dispose instead (#1371)
|
||||
- Marked `OpenXmlPackage.SaveAs` as obsolete as it will be removed in a future version (#1378)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed incorrect file extensions for vbaProject files (#1292)
|
||||
- Fixed incorrect file extensions for ImagePart (#1305)
|
||||
- Fixed incorrect casing for customXml (#1351)
|
||||
- Fixed AddEmbeddedPackagePart to allow correct extensions for various content types (#1388)
|
||||
|
||||
## [2.19.0] - 2022-12-14
|
||||
|
||||
### Added
|
||||
|
||||
- .NET 6 target with support for trimming (#1243, #1240)
|
||||
- Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData namespace
|
||||
- Added DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command namespace
|
||||
- Added DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command namespace
|
||||
- Added Child RichDataPivotCacheGuid to DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition
|
||||
|
||||
### Fixed
|
||||
|
||||
- Removed reflection usage where possible (#1240)
|
||||
- Fixed issue where some URIs might be changed when cloning or creating copy (#1234)
|
||||
- Fixed issue in FlatOpc generation that would not read the full stream on .NET 6+ (#1232)
|
||||
- Fixed issue where restored relationships wouldn't load correctly (#1207)
|
||||
|
||||
## [2.18.0] 2022-09-06
|
||||
|
||||
### Added
|
||||
|
||||
- Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 namespace (#1196)
|
||||
- Added durableId attribute to DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet (#1196)
|
||||
- Added few base classes for typed elements, parts, and packages (#1185)
|
||||
|
||||
### Changed
|
||||
|
||||
- Adjusted LICENSE.md to conform to .NET Foundation requirements (#1194)
|
||||
- Miscellaneous changes for better perf for internal services
|
||||
|
||||
## [2.17.1] - 2022-06-28
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed the preview namespace DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions because this namespace will currently create invalid documents.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Restored the PowerPointCommentPart relationship to PresentationPart.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- The relationship between the PowerPointCommentPart and the PresentationPart is deprecated and will be removed in a future version.
|
||||
|
||||
## [2.17.0] - Unreleased
|
||||
|
||||
### Added
|
||||
|
||||
- Added DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions namespace (#1151)
|
||||
- Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo namespace (#1151)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Moved PowerPointCommentPart relationship to SlidePart (#1137)
|
||||
|
||||
### Updated
|
||||
|
||||
- Removed public API analyzers in favor of EnablePackageValidation (#1154)
|
||||
|
||||
## [2.16.0] - 2022-03-14
|
||||
|
||||
### Added
|
||||
|
||||
- Added method `OpenXmlPart.UnloadRootElement` that will unload the root element if it is loaded (#1126)
|
||||
|
||||
### Updated
|
||||
|
||||
- Schema code generation was moved to the SDK project using C# code generators
|
||||
|
||||
Thanks to the following for their contribution:
|
||||
|
||||
@f1nzer
|
||||
|
||||
## [2.15.0] - 2021-12-16
|
||||
|
||||
### Added
|
||||
|
||||
- Added samples for strongly typed classes and Linq-to-XML in the `./samples` directory (#1101, #1087)
|
||||
- Shipping additional libraries for some additional functionality in `DocumentFormat.OpenXml.Features` and `DocumentFormat.OpenXml.Linq`. See documentation in repo for additional details.
|
||||
- Added extension method to support getting image part type (#1082)
|
||||
- Added generated classes and `FileFormatVersions.Microsoft365` for new subscription model types and constraints (#1097).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue for changed mime type `model/gltf.binary` (#1069)
|
||||
- DocumentFormat.OpenXml.Office.Drawing.ShapeTree is now available only in Office 2010 and above, not 2007.
|
||||
- Correctly serialize `new CellValue(bool)` values (#1070)
|
||||
- Updated known namespaces to be generated via an in-repo source generator (#1092)
|
||||
- Some documentation issues around `FileFormatVersions` enum
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@ThomasBarnekow
|
||||
@stevenhansen
|
||||
@JaimeStill
|
||||
@jnyrup
|
||||
|
||||
## [2.14.0] - 2021-10-28
|
||||
|
||||
### Added
|
||||
|
||||
- Added generated classes for Office 2021 types and constraints (#1030)
|
||||
- Added `Features` property to `OpenXmlPartContainer` and `OpenXmlElement` to enable a per-part or per-document state storage
|
||||
- Added public constructors for `XmlPath` (#1013)
|
||||
- Added parts for Rich Data types (#1002)
|
||||
- Added methods to generate unique paragraph ids (#1000)
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@rmboggs
|
||||
@ThomasBarnekow
|
||||
|
||||
## [2.13.1] - 2021-08-17
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed some nullability annotations that were incorrectly defined (#953, #955)
|
||||
- Fixed issue that would dispose a `TextReader` when creating an `XmlReader` under certain circumstances (#940)
|
||||
- Fixed a documentation type (#937)
|
||||
- Fixed an issue with adding additional children to data parts (#934)
|
||||
- Replaced some documentation entries that were generic values with helpful comments (#992)
|
||||
- Fixed a regression in AddDataPartRelationship (#954)
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@ThomasBarnekow
|
||||
@sorensenmatias
|
||||
@lklein53
|
||||
@lindexi
|
||||
|
||||
## [2.13.0] - 2021-05-13
|
||||
|
||||
### Added
|
||||
|
||||
- Additional O19 types to match Open Specifications (#916)
|
||||
- Added generated classes for Office 2019 types and constraints (#882)
|
||||
- Added nullability attributes (#840, #849)
|
||||
- Added overload for `OpenXmlPartReader` and `OpenXmlReader.Create(...)` to ignore whitespace (#857)
|
||||
- Added `HexBinaryValue.TryGetBytes(...)` and `HexBinaryValue.Create(byte[])` to manage the encoding and decoding of bytes (#867)
|
||||
- Implemented `IEquatable<IdPartPair>` on `IdPartPair` to fix equality implementation there and obsoleted setters (#871)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed serialization of `CellValue` constructors to use invariant cultures (#903)
|
||||
- Fixed parsing to allow exponents for numeric cell values (#901)
|
||||
- Fixed massive performance bottleneck when `UniqueAttributeValueConstraint` is involved (#924)
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Deprecated Office2013.Word.Person.Contact property. It no longer persists and will be removed in a future version (#912)
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@lklein53
|
||||
@igitur
|
||||
|
||||
## [2.12.3] - 2021-02-24
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where `CellValue` may validate incorrectly for boolean values (#890)
|
||||
|
||||
## [2.12.2] - 2021-02-16
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where `OpenSettings.RelationshipErrorHandlerFactory` creates invalid XML if the resulting URI is smaller than the input (#883)
|
||||
|
||||
## [2.12.1] - 2021-01-11
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed bug where properties on `OpenXmlCompositeElement` instances could not be set to null to remove element (#850)
|
||||
- Fixed `OpenXmlElement.RawOuterXml` to properly set null values without throwing (#818)
|
||||
- Allow rewriting of all malformed URIs regardless of target value (#835)
|
||||
|
||||
## [2.12.0] - 2020-12-09
|
||||
|
||||
### Added
|
||||
|
||||
- Added `OpenSettings.RelationshipErrorHandlerFactory` to provide a way to handle URIs that break parsing documents with malformed links (#793)
|
||||
- Added `OpenXmlCompositeElement.AddChild(OpenXmlElement)` to add children in the correct order per schema (#774)
|
||||
- Added `SmartTagClean` and `SmartTagId` in place of `SmtClean` and `SmtId` (#747)
|
||||
- Added `OpenXmlValidator.Validate(..., CancellationToken)` overrides to allow easier cancellation of long running validation on .NET 4.0+ (#773)
|
||||
- Added overloads for `CellValue` to take `decimal`, `double`, and `int`, as well as convenience methods to parse them (#782)
|
||||
- Added validation for `CellType` for numbers and date formats (#782)
|
||||
- Added `OpenXmlReader.GetLineInfo()` to retrieve `IXmlLineInfo` of the underlying reader if available (#804)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed exception that would be thrown if attempting to save a document as FlatOPC if it contains SVG files (#822)
|
||||
- Added `SchemaAttrAttribute` attributes back for backwards compatibility (#825)
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed explicit reference to `System.IO.Packaging` on .NET 4.6 builds (#774)
|
||||
|
||||
## [2.11.3] - 2020-07-17
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed massive performance bottleneck when `IndexReferenceConstraint` and `ReferenceExistConstraint` are involved (#763)
|
||||
- Fixed `CellValue` to only include three most signficant digits on second fractions to correct issue loading dates (#741)
|
||||
- Fixed a couple of validation indexing errors that might cause erroneous validation errors (#767)
|
||||
- Updated internal validation system to not use recursion, allowing for better short-circuiting (#766)
|
||||
|
||||
## [2.11.2] - 2020-07-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed broken source link (#749)
|
||||
- Ensured compilation is deterministic (#749)
|
||||
- Removed extra file in NuGet package (#749)
|
||||
|
||||
## [2.11.1] - 2020-07-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- Ensure .NET Framework builds pass PEVerify (#744)
|
||||
- `OpenXmlPartContainer.DeletePart` no longer throws an exception if there isn't a match for the identifier given (#740)
|
||||
- Mark obsolete members to not show up with Intellisense (#745)
|
||||
- Fixed issue with `AttributeRequiredConditionToValue` semantic constraint where validation could fail on correct input (#746)
|
||||
|
||||
## [2.11.0] - 2020-05-21
|
||||
|
||||
### Added
|
||||
|
||||
- Added `FileFormatVersions.2019` enum (#695)
|
||||
- Added `ChartSpace` and chart elements for the new 2016 namespaces. This allows the connecting pieces for building a chart part with chart styles like "Sunburst" (#687).
|
||||
- Added `OpenXmlElementFunctionalExtensions.With(...)` extension methods, which offer flexible means for constructing `OpenXmlElement` instances in the context of pure functional transformations (#679)
|
||||
- Added minimum Office versions for enum types and values (#707)
|
||||
- Added additional `CompatSettingNameValues` values: `UseWord2013TrackBottomHyphenation`, `AllowHyphenationAtTrackBottom`, and `AllowTextAfterFloatingTableBreak` (#706)
|
||||
- Added gfxdata attribue to Arc, Curve, Line, PolyLine, Group, Image, Oval, Rect, and RoundRect shape complex types per MS-OI29500 2.1.1783-1799 (#709)
|
||||
- Added `OpenXmlPartContainer.TryGetPartById` to enable child part retrieval without exception if it does not exist (#714)
|
||||
- Added `OpenXmlPackage.StrictRelationshipFound` property that indicates whether this package contains Transitional relationships converted from Strict (#716)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Custom derived parts did not inherit known parts from its parent, causing failure when adding parts (#722)
|
||||
|
||||
### Changed
|
||||
|
||||
- Marked the property setters in `OpenXmlAttribute` as obsolete as structs should not have mutable state (#698)
|
||||
|
||||
## [2.10.1] - 2020-02-28
|
||||
|
||||
### Fixed
|
||||
|
||||
- Ensured attributes are available when `OpenXmlElement` is initialized with outer XML (#684, #692)
|
||||
- Some documentation errors (#681)
|
||||
- Removed state that made it non-thread safe to validate elements under certain conditions (#686)
|
||||
- Correctly inserts strongly-typed elements before known elements that are not strongly-typed (#690)
|
||||
|
||||
## [2.10.0] - 2020-01-10
|
||||
|
||||
### Added
|
||||
|
||||
- Added initial Office 2016 support, including `FileFormatVersion.Office2016`, `ExtendedChartPart` and other new schema elements (#586)
|
||||
- Added .NET Standard 2.0 target (#587)
|
||||
- Included symbols support for debugging (#650)
|
||||
- Exposed `IXmlNamespaceResolver` from `XmlPath` instead of formatted list of strings to expose namespace/prefix mapping (#536)
|
||||
- Implemented `IComparable<T>` and `IEquatable<T>` on `OpenXmlComparableSimpleValue` to allow comparisons without boxing (#550)
|
||||
- Added `OpenXmlPackage.RootPart` to easily access the root part on any package (#661)
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated to v4.7.0 of System.IO.Packaging which brings in a number of perf fixes (#660)
|
||||
- Consolidated data for element children/properties to reduce duplication (#540, #547, #548)
|
||||
- Replaced opaque binary data for element children constraints with declarative model (#603)
|
||||
- A number of performance fixes to minimize allocations where possible
|
||||
- 20% size reduction from 5.5mb to 4.3mb
|
||||
- The validation subsystem went through a drastic redesign. This may cause changes in what errors are reported.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed some documentation inconsistencies (#582)
|
||||
- Fixed `ToFlatOpcDocument`, `ToFlatOpcString`, `FromFlatOpcDocument`, and `FromFlatOpcString` to correctly process Alternative Format Import Parts, or "altChunk parts" (#659)
|
||||
|
||||
## [2.9.1] - 2019-03-13
|
||||
|
||||
### Changed
|
||||
|
||||
- Added a workaround for a .NET Native compiler issue that doesn't support calling `Marshal.SizeOf<T>` with a struct that contains auto-implemented properties (#569)
|
||||
- Fixed a documentation error (#528)
|
||||
|
||||
## [2.9.0] - 2018-06-08
|
||||
|
||||
### Added
|
||||
|
||||
- `ListValue` now implements `IEnumerable<T>` (#385)
|
||||
- Added a `WebExtension.Frozen` and obsoleted misspelled `Fronzen` property (#460)
|
||||
- Added an `OpenXmlPackage.CanSave` property that indicates whether a platform supports saving without closing the package (#468)
|
||||
- Simple types (except `EnumValue` and `ListValue`) now implement `IComparable<T>` and `IEquatable<T>` (#487)
|
||||
|
||||
### Changed
|
||||
|
||||
- Removed state that was carried in validators that would hold onto packages when not in use (#390)
|
||||
- `EnumSimpleType` parsing was improved and uses less allocations and caches for future use (#408)
|
||||
- Fixed a number of spelling mistakes in documentation (#462)
|
||||
- When calling `OpenXmlPackage.Save` on .NET Framework, the package is now flushed to the stream (#468)
|
||||
- Fixed race condition while performing strict translation of attributes (#480)
|
||||
- Schema data for validation uses a more compact format leading to a reduction in dll size and performance improvements for loading (#482, #483)
|
||||
- A number of APIs are marked as obsolete as they have simple workarounds and will be removed in the next major change
|
||||
- Fixed some constraint values for validation that contained Office 2007, even when it was only supported in later versions
|
||||
- Updated `System.IO.Packaging` to 4.5.0 which fixes some issues on Xamarin platforms as well as minimizes dependencies on .NET Framework
|
||||
|
||||
## [2.8.1] - 2018-01-03
|
||||
|
||||
### Changed
|
||||
|
||||
- Corrected package license file reference to show updated MIT License
|
||||
|
||||
## [2.8.0] - 2017-12-28
|
||||
|
||||
### Added
|
||||
|
||||
- Default runtime directive for better .NET Native support.
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed part saving to be encoded with UTF8 but no byte order mark. This caused some renderers to not be able to open the generated document.
|
||||
- Fixed exceptions thrown when errors are encountered while opening packages to be consistent across platforms.
|
||||
- Fixed issue on Mono platforms using System.IO.Packaging NuGet package (Xamarin, etc) when creating a document.
|
||||
- Fixed manual saving of a package when autosave is false.
|
||||
- Fixed schema constraint data and standardized serialization across platforms.
|
||||
- Upgraded to `System.IO.Packaging` version 4.4.0 which fixes some consistency with .NET Framework in opening packages.
|
||||
|
||||
## [2.7.2] - 2017-06-06
|
||||
|
||||
### Added
|
||||
|
||||
- Package now supports .NET 3.5 and .NET 4.0 in addition to .NET Standard 1.3 and .NET Framework 4.6
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed issue where assembly version wasn't set in assembly.
|
||||
|
||||
## [2.7.1] - 2017-01-31
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed crash when validation is invoked on .NET Framework with strong-naming enforced.
|
||||
|
||||
## [2.7.0] - 2017-01-24
|
||||
|
||||
### Added
|
||||
|
||||
- SDK now supports .NET Standard 1.3
|
||||
|
||||
### Changed
|
||||
|
||||
- Moved to using System.IO.Packaging from dotnet/corefx for .NET Standard 1.3 and WindowsBase for .NET 4.5.
|
||||
- Cleaned up project build system to use .NET CLI.
|
||||
|
||||
## [2.6.1] - 2016-01-15
|
||||
|
||||
### Added
|
||||
|
||||
- Added hundreds of XUnit tests. There are now a total of 1333 tests. They take about 20 minutes to run, so be patient.
|
||||
|
||||
## [2.6.0] - 2015-06-29
|
||||
|
||||
### Added
|
||||
|
||||
- Incorporated a replacement `System.IO.Packaging` that fixes some serious (but exceptional) bugs found in the WindowsBase implementation
|
||||
|
||||
[3.0.1]: https://github.com/dotnet/Open-XML-SDK/compare/v3.0.0...v3.0.1
|
||||
[3.0.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.20.0...v3.0.0
|
||||
[2.20.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.19.0...v2.20.0
|
||||
[2.19.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.18.0...v2.19.0
|
||||
[2.18.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.17.1...v2.18.0
|
||||
[2.17.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.17.0...v2.17.1
|
||||
[2.17.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.16.0...v2.17.0
|
||||
[2.16.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.15.0...v2.16.0
|
||||
[2.15.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.14.0...v2.15.0
|
||||
[2.14.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.14.0-beta1...v2.14.0
|
||||
[2.13.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.13.0...v2.13.1
|
||||
[2.13.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.13.0...v2.13.0
|
||||
[2.12.3]: https://github.com/dotnet/Open-XML-SDK/compare/v2.12.3...v2.12.1
|
||||
[2.12.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.12.1...v2.12.0
|
||||
[2.12.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.12.0...v2.11.3
|
||||
[2.11.3]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.3...v2.11.2
|
||||
[2.11.2]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.2...v2.11.1
|
||||
[2.11.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.1...v2.11.0
|
||||
[2.11.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.0...v2.10.1
|
||||
[2.10.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.10.1...v2.10.0
|
||||
[2.10.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.10.0...v2.9.1
|
||||
[2.9.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.9.1...v2.9.0
|
||||
[2.9.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.9.0...v2.8.1
|
||||
[2.8.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.8.1...v2.8.0
|
||||
[2.8.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.8.0...v2.7.2
|
||||
[2.7.2]: https://github.com/dotnet/Open-XML-SDK/compare/v2.7.1...v2.7.2
|
||||
[2.7.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.7.0...v2.7.1
|
||||
[2.7.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.6.1...v2.7.0
|
||||
[2.6.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.6.0...v2.6.1
|
||||
[2.6.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.5.0...v2.6.0</releaseNotes>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<tags>openxml office</tags>
|
||||
<repository type="git" url="https://github.com/dotnet/Open-XML-SDK" commit="f9e6ad7524e22b6b1f932deabc9055201b7870c0" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETFramework3.5">
|
||||
<dependency id="DocumentFormat.OpenXml.Framework" version="3.1.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETFramework4.0">
|
||||
<dependency id="DocumentFormat.OpenXml.Framework" version="3.1.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETFramework4.6">
|
||||
<dependency id="DocumentFormat.OpenXml.Framework" version="3.1.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework="net8.0">
|
||||
<dependency id="DocumentFormat.OpenXml.Framework" version="3.1.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="DocumentFormat.OpenXml.Framework" version="3.1.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
</dependencies>
|
||||
<frameworkAssemblies>
|
||||
<frameworkAssembly assemblyName="System" targetFramework=".NETFramework3.5, .NETFramework4.0, .NETFramework4.6" />
|
||||
<frameworkAssembly assemblyName="System.Xml" targetFramework=".NETFramework3.5, .NETFramework4.0, .NETFramework4.6" />
|
||||
<frameworkAssembly assemblyName="WindowsBase" targetFramework=".NETFramework3.5, .NETFramework4.0, .NETFramework4.6" />
|
||||
</frameworkAssemblies>
|
||||
</metadata>
|
||||
</package>
|
7
Assets/Packages/DocumentFormat.OpenXml.3.1.1/DocumentFormat.OpenXml.nuspec.meta
vendored
Normal file
7
Assets/Packages/DocumentFormat.OpenXml.3.1.1/DocumentFormat.OpenXml.nuspec.meta
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4529957b90bd38c4f853c9e85940a305
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,122 @@
|
|||
<!-- omit in toc -->
|
||||
Open XML SDK
|
||||
============
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> [v3.0.0](https://www.nuget.org/packages/DocumentFormat.OpenXml/3.0.0) refactors and addresses some technical debt while retaining source compatibility as much as possible. You should be able to update your package and recompile with limited changes. However, binary compatibility was not a goal and will break that for some changes which are documented. PRs that introduced such changes are marked with a `breaking-change` label and were added to a list to help migrating to v3.0.0.
|
||||
>
|
||||
> Please see the [v3.0.0 milestone](https://github.com/OfficeDev/Open-XML-SDK/milestone/1) for issues and PRs that are included. For discussions, please join us at [this issue](https://github.com/OfficeDev/Open-XML-SDK/issues/1270).
|
||||
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The CI feed URL has changed as of 2 April, 2024. Please update to the new URL if using CI builds.
|
||||
|
||||
[](https://www.nuget.org/packages/DocumentFormat.OpenXml)
|
||||
[](https://office.visualstudio.com/OC/_build/latest?definitionId=7420&branchName=main)
|
||||
[](https://ointprotocol.visualstudio.com/OInteropTools/_build/latest?definitionId=21&branchName=main)
|
||||
|
||||
The Open XML SDK provides tools for working with Office Word, Excel, and PowerPoint documents. It supports scenarios such as:
|
||||
|
||||
- High-performance generation of word-processing documents, spreadsheets, and presentations.
|
||||
- Document modification, such as adding, updating, and removing content and metadata.
|
||||
- Search and replace content using regular expressions.
|
||||
- Splitting up (shredding) a file into multiple files, and combining multiple files into a single file.
|
||||
- Updating cached data and embedded spreadsheets for charts in Word/PowerPoint.
|
||||
|
||||
<!-- omit in toc -->
|
||||
# Table of Contents
|
||||
|
||||
- [Packages](#packages)
|
||||
- [Daily Builds](#daily-builds)
|
||||
- [Framework Support](#framework-support)
|
||||
- [Known Issues](#known-issues)
|
||||
- [Documentation](#documentation)
|
||||
- [If You Have How-To Questions](#if-you-have-how-to-questions)
|
||||
- [Related tools](#related-tools)
|
||||
|
||||
# Packages
|
||||
|
||||
The official release NuGet packages for Open XML SDK are on NuGet.org:
|
||||
|
||||
| Package | Download | Prerelease |
|
||||
|---------|----------|------------|
|
||||
| DocumentFormat.OpenXml.Framework | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Framework) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Framework) |
|
||||
| DocumentFormat.OpenXml | [](https://www.nuget.org/packages/DocumentFormat.OpenXml) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml) |
|
||||
| DocumentFormat.OpenXml.Linq | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Linq) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Linq) |
|
||||
| DocumentFormat.OpenXml.Features | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Features) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Features) |
|
||||
|
||||
## Daily Builds
|
||||
|
||||
The NuGet package for the latest builds of the Open XML SDK is available as a custom feed on an Azure blob. Stable releases here will be mirrored onto NuGet and will be identical. You must set up a [NuGet.config](https://docs.microsoft.com/en-us/nuget/reference/nuget-config-file) file that looks similar to this:
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="OpenXmlCI" value="https://ooxml.blob.core.windows.net/feed/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
For latests changes, please see the [changelog](CHANGELOG.md)
|
||||
|
||||
## Framework Support
|
||||
|
||||
The package currently supports the following targets:
|
||||
|
||||
- .NET Framework 3.5, 4.0, 4.6
|
||||
- .NET Standard 2.0
|
||||
- .NET 6.0
|
||||
|
||||
For details on platform support, including other runtimes such as Mono and Unity, please see the docs at https://docs.microsoft.com/en-us/dotnet/standard/net-standard.
|
||||
|
||||
# Known Issues
|
||||
|
||||
- On .NET Core and .NET 5 and following, ZIP packages do not have a way to stream data. Thus, the working set can explode in certain situations. This is a [known issue](https://github.com/dotnet/runtime/issues/1544).
|
||||
- On .NET Framework, an `IsolatedStorageException` may be thrown under certain circumstances. This generally occurs when manipulating a large document in an environment with an AppDomain that does not have enough evidence. A sample with a workaround is available [here](/samples/IsolatedStorageExceptionWorkaround).
|
||||
|
||||
# Documentation
|
||||
|
||||
Please see [Open XML SDK](https://learn.microsoft.com/en-us/office/open-xml/open-xml-sdk) for the official documentation.
|
||||
|
||||
# If you have how-to questions
|
||||
|
||||
- [Stack Overflow](http://stackoverflow.com) (tags: **openxml** or **openxml-sdk**)
|
||||
- How-to samples:
|
||||
- [Spreadsheet Samples](https://learn.microsoft.com/en-us/office/open-xml/spreadsheet/overview)
|
||||
- [Presentation Samples](https://learn.microsoft.com/en-us/office/open-xml/presentation/overview)
|
||||
- [Wordprocessing Samples](https://learn.microsoft.com/en-us/office/open-xml/word/overview)
|
||||
|
||||
# Related tools
|
||||
|
||||
- **[Open XML SDK 2.5 Productivity Tool](https://github.com/OfficeDev/Open-XML-SDK/releases/tag/v2.5)**: The Productivity Tool provides viewing and code generation compatible with the Open XML SDK 2.5.
|
||||
- **[Open XML Powertools](https://github.com/EricWhiteDev/Open-Xml-PowerTools)**: This provides example code and guidance for implementing a wide range of Open XML scenarios.
|
||||
- **[ClosedXml](https://github.com/closedxml/closedxml)**: This library provides a simplified object model on top of the OpenXml SDK for manipulating and creating Excel documents.
|
||||
- **[OfficeIMO](https://github.com/EvotecIT/OfficeIMO)**: This library provides a simplified object model on top of the OpenXml SDK manipulating and creating Word documents.
|
||||
- **[OpenXML-Office](https://github.com/DraviaVemal/OpenXML-Office)**: This nuget library provides a simplified object model on top of the OpenXml SDK manipulating and creating PPT and Excel documents.
|
||||
- **[Serialize.OpenXml.CodeGen](https://github.com/rmboggs/Serialize.OpenXml.CodeGen)**: This is a tool that converts an OpenXml document into the .NET code required to create it.
|
||||
- **[Html2OpenXml](https://github.com/onizet/html2openxml)**: This is a tool that takes HTML and converts it to an OpenXml document.
|
||||
- **[DocxToSource](https://github.com/rmboggs/DocxToSource)**: This is a tool designed to be a replacement for the old OpenXML SDK Productivity Tool.
|
||||
- **[OOXML Viewer](https://github.com/yuenm18/ooxml-viewer-vscode)**: This is an extension for Visual Studio Code to View and Edit the xml parts of an Office Open XML file and to view a diff with the previous version of an OOXML part when saved from an outside program. Search "OOXML" in the VS Code extensions tab or download it from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=yuenm18.ooxml-viewer)
|
||||
- **[ShapeCrawler](https://github.com/ShapeCrawler/ShapeCrawler)**: This library provides a simplified object model on top of the OpenXml SDK to manipulate PowerPoint documents.
|
||||
- **[OOXML Validator](https://github.com/mikeebowen/ooxml-validator-vscode)**: VS Code extension to validate Office Open XML files. Search "OOXML" in the VS Code extensions tab or download it from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mikeebowen.ooxml-validator-vscode)
|
||||
|
||||
# How can I contribute?
|
||||
|
||||
We welcome contributions! Many people all over the world have helped make this project better.
|
||||
|
||||
- [Contributing](./CONTRIBUTING.md) explains what kinds of contributions we welcome
|
||||
|
||||
# Reporting security issues and security bugs
|
||||
|
||||
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://www.microsoft.com/en-us/msrc/faqs-report-an-issue?rtc=1).
|
||||
|
||||
# .NET Foundation
|
||||
The Open XML SDK is a [.NET Foundation](https://dotnetfoundation.org/projects) project.
|
||||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](https://www.contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/about/code-of-conduct).
|
||||
|
||||
# License
|
||||
|
||||
The Open XML SDK is licensed under the [MIT](./LICENSE) license.
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 23953c9eb7b646042b223fb0fb1712f1
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,136 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4d221a477921cae4fa8d8dbde57845d8
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 6934086728263231946
|
||||
second: icon_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: icon_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: ac961e71423da3060800000000000000
|
||||
internalID: 6934086728263231946
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5978743eab8953044ba814fdb5e530c4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6cabdc881115dec4082a20753de6d60a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Packages/DocumentFormat.OpenXml.3.1.1/lib/netstandard2.0/DocumentFormat.OpenXml.dll
vendored
Normal file
BIN
Assets/Packages/DocumentFormat.OpenXml.3.1.1/lib/netstandard2.0/DocumentFormat.OpenXml.dll
vendored
Normal file
Binary file not shown.
23
Assets/Packages/DocumentFormat.OpenXml.3.1.1/lib/netstandard2.0/DocumentFormat.OpenXml.dll.meta
vendored
Normal file
23
Assets/Packages/DocumentFormat.OpenXml.3.1.1/lib/netstandard2.0/DocumentFormat.OpenXml.dll.meta
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5de96c0ab65e86a4788f1b15caee2db3
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
257565
Assets/Packages/DocumentFormat.OpenXml.3.1.1/lib/netstandard2.0/DocumentFormat.OpenXml.xml
vendored
Normal file
257565
Assets/Packages/DocumentFormat.OpenXml.3.1.1/lib/netstandard2.0/DocumentFormat.OpenXml.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b439791ebaa8863488902523448a48cf
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ab0a22ded8e5db8409aee28037ed6522
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
553
Assets/Packages/DocumentFormat.OpenXml.Framework.3.1.1/DocumentFormat.OpenXml.Framework.nuspec
vendored
Normal file
553
Assets/Packages/DocumentFormat.OpenXml.Framework.3.1.1/DocumentFormat.OpenXml.Framework.nuspec
vendored
Normal file
|
@ -0,0 +1,553 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>DocumentFormat.OpenXml.Framework</id>
|
||||
<version>3.1.1</version>
|
||||
<authors>Microsoft</authors>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<icon>icon.png</icon>
|
||||
<readme>README.md</readme>
|
||||
<projectUrl>https://github.com/dotnet/Open-XML-SDK</projectUrl>
|
||||
<iconUrl>https://raw.githubusercontent.com/dotnet/Open-XML-SDK/master/icon.png</iconUrl>
|
||||
<description>The Open XML SDK provides tools for working with Office Word, Excel, and PowerPoint documents. It supports scenarios such as:
|
||||
|
||||
- High-performance generation of word-processing documents, spreadsheets, and presentations.
|
||||
- Populating content in Word files from an XML data source.
|
||||
- Splitting up (shredding) a Word or PowerPoint file into multiple files, and combining multiple Word/PowerPoint files into a single file.
|
||||
- Extraction of data from Excel documents.
|
||||
- Searching and replacing content in Word/PowerPoint using regular expressions.
|
||||
- Updating cached data and embedded spreadsheets for charts in Word/PowerPoint.
|
||||
- Document modification, such as removing tracked revisions or removing unacceptable content from documents.</description>
|
||||
<releaseNotes># Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.1.1] - 2024-10-15
|
||||
|
||||
### Fixed
|
||||
|
||||
- Updated System.IO.Packaging and other dependencies (#1794, #1795, #1796, #1782, #1808)
|
||||
- Fixed add c16:uniqueId to several chart complex types (#1762)
|
||||
- Fixed <remarks> rather than <remark> in the documentation comments (#1775)
|
||||
|
||||
## [3.1.0] - 2024-07-30
|
||||
|
||||
### Added
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotAutoRefresh` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2024.PivotDynamicArrays` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.DataSourceVersioning` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.ExternalCodeService` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms` namespace
|
||||
- Added `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.Pivot2023Calculation` namespace
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where `OpenXmlUnknownElement` is returned instead of `CommentPropertiesExtension` (#1751)
|
||||
- Fixed issue where `OpenXmlWriter` is unable to write `SharedStringTablePart` (#1755)
|
||||
|
||||
## [3.0.2] - 2024-03-14
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where temp files were shareable and not deleted on close (#1658)
|
||||
|
||||
## [3.0.1] - 2024-01-09
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where document type would not be correct unless content type was checked first (#1625)
|
||||
- Added check to only seek on packages where it is supported (#1644)
|
||||
- If a malformed URI is encountered, the exception is now the same as v2.x (`OpenXmlPackageException` with an inner `UriFormatException`) (#1644)
|
||||
|
||||
## [3.0.0] - 2023-11-15
|
||||
|
||||
### Added
|
||||
|
||||
- Packages can now be saved on .NET Core and .NET 5+ if constructed with a path or stream (#1307).
|
||||
- Packages can now support malformed URIs (such as relationships with a URI such as `mailto:person@`)
|
||||
- Introduce equality comparers for `OpenXmlElement` (#1476)
|
||||
- `IFeatureCollection` can now be enumerated and has a helpful debug view to see what features are registered (#1452)
|
||||
- Add mime types to part creation (#1488)
|
||||
- `DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main` namespace
|
||||
- `DocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main` namespace
|
||||
- `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021` namespace
|
||||
|
||||
### Changed
|
||||
|
||||
- When validation finds incorrect part, it will now include the relationship type rather than a class name
|
||||
- `IDisposableFeature` is now a part of the framework package and is available by default on a package or part.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- .NET Standard 1.3 is no longer a supported platform. .NET Standard 2.0 is the lowest .NET Standard supported.
|
||||
- Core infrastructure is now contained in a new package DocumentFormat.OpenXml.Framework. Typed classes are still in DocumentFormat.OpenXml. This means that you may reference DocumentFormat.OpenXml and still compile the same types, but if you want a smaller package, you may rely on just the framework package.
|
||||
- Changed type of `OpenXmlPackage.Package` to `DocumentFormat.OpenXml.Packaging.IPackage` instead of `System.IO.Packaging.Package` with a similar API surface
|
||||
- `EnumValue<T>` now is used to box a struct rather than a `System.Enum`. This allows us to enable behavior on it without resorting to reflection
|
||||
- Methods on parts to add child parts (i.e. `AddImagePart`) are now implemented as extension methods off of a new marker interface `ISupportedRelationship<T>`
|
||||
- Part type info enums (i.e. `ImagePartType`) is no longer an enum, but a static class to expose well-known part types as structs. Now any method to define a new content-type/extension pair can be called with the new `PartTypeInfo` struct that will contain the necessary information.
|
||||
- `OpenXmlPackage.CanSave` is now an instance property (#1307)
|
||||
- Removed `OpenXmlSettings.RelationshipErrorHandlerFactory` and associated types and replaced with a built-in mechanism to enable this
|
||||
- `IdPartPair` is now a readonly struct rather than a class
|
||||
- Renamed `PartExtensionProvider` to `IPartExtensionFeature` and reduced its surface area to only two methods (instead of a full `Dictionary<,>`). The property to access this off of `OpenXmlPackage` has been removed, but may be accessed via `Features.Get<IPartExtensionFeature>()` if needed.
|
||||
- `OpenXmlPart`/`OpenXmlContainer`/`OpenXmlPackage` and derived types now have internal constructors (these had internal abstract methods so most likely weren't subclassed externally)
|
||||
- `OpenXmlElementList` is now a struct that implements `IEnumerable<OpenXmlElement>` and `IReadOnlyList<OpenXmlElement>` where available (#1429)
|
||||
- Individual implementations of `OpenXmlPartReader` are available now for each package type (i.e. `WordprocessingDocumentPartReader`, `SpreadsheetDocumentPartReader`, `PresentationDocumentPartReader`), and the previous `TypedOpenXmlPartReader` has been removed. (#1403)
|
||||
- Reduced unnecessary target frameworks for packages besides DocumentFormat.OpenXml.Framework (#1471)
|
||||
- Changed some spelling issues for property names (#1463, #1444)
|
||||
- `Model3D` now represents the modified xml element tag name `am3d.model3d` (Previously `am3d.model3D`)
|
||||
- Removed `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo`
|
||||
- Removed `DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid`
|
||||
- Removed unused `SchemaAttrAttribute` (#1316)
|
||||
- Removed unused `ChildElementInfoAttribute` (#1316)
|
||||
- Removed `OpenXmlSimpleType.TextValue`. This property was never meant to be used externally (#1316)
|
||||
- Removed obsolete validation logic from v1 of the SDK (#1316)
|
||||
- Removed obsoleted methods from 2.x (#1316)
|
||||
- Removed mutable properties on OpenXmlAttribute and marked as `readonly` (#1282)
|
||||
- Removed `OpenXmlPackage.Close` in favor of `Dispose` (#1373)
|
||||
- Removed `OpenXmlPackage.SaveAs` in favor of `Clone` (#1376)
|
||||
|
||||
## [2.20.0]
|
||||
|
||||
### Added
|
||||
|
||||
- Added DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula namespace
|
||||
- Added DocumentFormat.OpenXml.Office.Word.Y2023.WordML.Word16DU namespace
|
||||
|
||||
### Changed
|
||||
|
||||
- Marked `OpenXmlSimpleType.TextValue` as obsolete. This property was never meant to be used externally (#1284)
|
||||
- Marked `OpenXmlPackage.Package` as obsolete. This will be an implementation detail in future versions and won't be accessible (#1306)
|
||||
- Marked `OpenXmlPackage.Close` as obsolete. This will be removed in a later release, use Dispose instead (#1371)
|
||||
- Marked `OpenXmlPackage.SaveAs` as obsolete as it will be removed in a future version (#1378)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed incorrect file extensions for vbaProject files (#1292)
|
||||
- Fixed incorrect file extensions for ImagePart (#1305)
|
||||
- Fixed incorrect casing for customXml (#1351)
|
||||
- Fixed AddEmbeddedPackagePart to allow correct extensions for various content types (#1388)
|
||||
|
||||
## [2.19.0] - 2022-12-14
|
||||
|
||||
### Added
|
||||
|
||||
- .NET 6 target with support for trimming (#1243, #1240)
|
||||
- Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData namespace
|
||||
- Added DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command namespace
|
||||
- Added DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command namespace
|
||||
- Added Child RichDataPivotCacheGuid to DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition
|
||||
|
||||
### Fixed
|
||||
|
||||
- Removed reflection usage where possible (#1240)
|
||||
- Fixed issue where some URIs might be changed when cloning or creating copy (#1234)
|
||||
- Fixed issue in FlatOpc generation that would not read the full stream on .NET 6+ (#1232)
|
||||
- Fixed issue where restored relationships wouldn't load correctly (#1207)
|
||||
|
||||
## [2.18.0] 2022-09-06
|
||||
|
||||
### Added
|
||||
|
||||
- Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 namespace (#1196)
|
||||
- Added durableId attribute to DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet (#1196)
|
||||
- Added few base classes for typed elements, parts, and packages (#1185)
|
||||
|
||||
### Changed
|
||||
|
||||
- Adjusted LICENSE.md to conform to .NET Foundation requirements (#1194)
|
||||
- Miscellaneous changes for better perf for internal services
|
||||
|
||||
## [2.17.1] - 2022-06-28
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed the preview namespace DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions because this namespace will currently create invalid documents.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Restored the PowerPointCommentPart relationship to PresentationPart.
|
||||
|
||||
### Deprecated
|
||||
|
||||
- The relationship between the PowerPointCommentPart and the PresentationPart is deprecated and will be removed in a future version.
|
||||
|
||||
## [2.17.0] - Unreleased
|
||||
|
||||
### Added
|
||||
|
||||
- Added DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions namespace (#1151)
|
||||
- Added DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo namespace (#1151)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Moved PowerPointCommentPart relationship to SlidePart (#1137)
|
||||
|
||||
### Updated
|
||||
|
||||
- Removed public API analyzers in favor of EnablePackageValidation (#1154)
|
||||
|
||||
## [2.16.0] - 2022-03-14
|
||||
|
||||
### Added
|
||||
|
||||
- Added method `OpenXmlPart.UnloadRootElement` that will unload the root element if it is loaded (#1126)
|
||||
|
||||
### Updated
|
||||
|
||||
- Schema code generation was moved to the SDK project using C# code generators
|
||||
|
||||
Thanks to the following for their contribution:
|
||||
|
||||
@f1nzer
|
||||
|
||||
## [2.15.0] - 2021-12-16
|
||||
|
||||
### Added
|
||||
|
||||
- Added samples for strongly typed classes and Linq-to-XML in the `./samples` directory (#1101, #1087)
|
||||
- Shipping additional libraries for some additional functionality in `DocumentFormat.OpenXml.Features` and `DocumentFormat.OpenXml.Linq`. See documentation in repo for additional details.
|
||||
- Added extension method to support getting image part type (#1082)
|
||||
- Added generated classes and `FileFormatVersions.Microsoft365` for new subscription model types and constraints (#1097).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue for changed mime type `model/gltf.binary` (#1069)
|
||||
- DocumentFormat.OpenXml.Office.Drawing.ShapeTree is now available only in Office 2010 and above, not 2007.
|
||||
- Correctly serialize `new CellValue(bool)` values (#1070)
|
||||
- Updated known namespaces to be generated via an in-repo source generator (#1092)
|
||||
- Some documentation issues around `FileFormatVersions` enum
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@ThomasBarnekow
|
||||
@stevenhansen
|
||||
@JaimeStill
|
||||
@jnyrup
|
||||
|
||||
## [2.14.0] - 2021-10-28
|
||||
|
||||
### Added
|
||||
|
||||
- Added generated classes for Office 2021 types and constraints (#1030)
|
||||
- Added `Features` property to `OpenXmlPartContainer` and `OpenXmlElement` to enable a per-part or per-document state storage
|
||||
- Added public constructors for `XmlPath` (#1013)
|
||||
- Added parts for Rich Data types (#1002)
|
||||
- Added methods to generate unique paragraph ids (#1000)
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@rmboggs
|
||||
@ThomasBarnekow
|
||||
|
||||
## [2.13.1] - 2021-08-17
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed some nullability annotations that were incorrectly defined (#953, #955)
|
||||
- Fixed issue that would dispose a `TextReader` when creating an `XmlReader` under certain circumstances (#940)
|
||||
- Fixed a documentation type (#937)
|
||||
- Fixed an issue with adding additional children to data parts (#934)
|
||||
- Replaced some documentation entries that were generic values with helpful comments (#992)
|
||||
- Fixed a regression in AddDataPartRelationship (#954)
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@ThomasBarnekow
|
||||
@sorensenmatias
|
||||
@lklein53
|
||||
@lindexi
|
||||
|
||||
## [2.13.0] - 2021-05-13
|
||||
|
||||
### Added
|
||||
|
||||
- Additional O19 types to match Open Specifications (#916)
|
||||
- Added generated classes for Office 2019 types and constraints (#882)
|
||||
- Added nullability attributes (#840, #849)
|
||||
- Added overload for `OpenXmlPartReader` and `OpenXmlReader.Create(...)` to ignore whitespace (#857)
|
||||
- Added `HexBinaryValue.TryGetBytes(...)` and `HexBinaryValue.Create(byte[])` to manage the encoding and decoding of bytes (#867)
|
||||
- Implemented `IEquatable<IdPartPair>` on `IdPartPair` to fix equality implementation there and obsoleted setters (#871)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed serialization of `CellValue` constructors to use invariant cultures (#903)
|
||||
- Fixed parsing to allow exponents for numeric cell values (#901)
|
||||
- Fixed massive performance bottleneck when `UniqueAttributeValueConstraint` is involved (#924)
|
||||
|
||||
### Deprecated
|
||||
|
||||
- Deprecated Office2013.Word.Person.Contact property. It no longer persists and will be removed in a future version (#912)
|
||||
|
||||
Thanks to the following for their contributions:
|
||||
|
||||
@lklein53
|
||||
@igitur
|
||||
|
||||
## [2.12.3] - 2021-02-24
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where `CellValue` may validate incorrectly for boolean values (#890)
|
||||
|
||||
## [2.12.2] - 2021-02-16
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where `OpenSettings.RelationshipErrorHandlerFactory` creates invalid XML if the resulting URI is smaller than the input (#883)
|
||||
|
||||
## [2.12.1] - 2021-01-11
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed bug where properties on `OpenXmlCompositeElement` instances could not be set to null to remove element (#850)
|
||||
- Fixed `OpenXmlElement.RawOuterXml` to properly set null values without throwing (#818)
|
||||
- Allow rewriting of all malformed URIs regardless of target value (#835)
|
||||
|
||||
## [2.12.0] - 2020-12-09
|
||||
|
||||
### Added
|
||||
|
||||
- Added `OpenSettings.RelationshipErrorHandlerFactory` to provide a way to handle URIs that break parsing documents with malformed links (#793)
|
||||
- Added `OpenXmlCompositeElement.AddChild(OpenXmlElement)` to add children in the correct order per schema (#774)
|
||||
- Added `SmartTagClean` and `SmartTagId` in place of `SmtClean` and `SmtId` (#747)
|
||||
- Added `OpenXmlValidator.Validate(..., CancellationToken)` overrides to allow easier cancellation of long running validation on .NET 4.0+ (#773)
|
||||
- Added overloads for `CellValue` to take `decimal`, `double`, and `int`, as well as convenience methods to parse them (#782)
|
||||
- Added validation for `CellType` for numbers and date formats (#782)
|
||||
- Added `OpenXmlReader.GetLineInfo()` to retrieve `IXmlLineInfo` of the underlying reader if available (#804)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed exception that would be thrown if attempting to save a document as FlatOPC if it contains SVG files (#822)
|
||||
- Added `SchemaAttrAttribute` attributes back for backwards compatibility (#825)
|
||||
|
||||
### Removed
|
||||
|
||||
- Removed explicit reference to `System.IO.Packaging` on .NET 4.6 builds (#774)
|
||||
|
||||
## [2.11.3] - 2020-07-17
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed massive performance bottleneck when `IndexReferenceConstraint` and `ReferenceExistConstraint` are involved (#763)
|
||||
- Fixed `CellValue` to only include three most signficant digits on second fractions to correct issue loading dates (#741)
|
||||
- Fixed a couple of validation indexing errors that might cause erroneous validation errors (#767)
|
||||
- Updated internal validation system to not use recursion, allowing for better short-circuiting (#766)
|
||||
|
||||
## [2.11.2] - 2020-07-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed broken source link (#749)
|
||||
- Ensured compilation is deterministic (#749)
|
||||
- Removed extra file in NuGet package (#749)
|
||||
|
||||
## [2.11.1] - 2020-07-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- Ensure .NET Framework builds pass PEVerify (#744)
|
||||
- `OpenXmlPartContainer.DeletePart` no longer throws an exception if there isn't a match for the identifier given (#740)
|
||||
- Mark obsolete members to not show up with Intellisense (#745)
|
||||
- Fixed issue with `AttributeRequiredConditionToValue` semantic constraint where validation could fail on correct input (#746)
|
||||
|
||||
## [2.11.0] - 2020-05-21
|
||||
|
||||
### Added
|
||||
|
||||
- Added `FileFormatVersions.2019` enum (#695)
|
||||
- Added `ChartSpace` and chart elements for the new 2016 namespaces. This allows the connecting pieces for building a chart part with chart styles like "Sunburst" (#687).
|
||||
- Added `OpenXmlElementFunctionalExtensions.With(...)` extension methods, which offer flexible means for constructing `OpenXmlElement` instances in the context of pure functional transformations (#679)
|
||||
- Added minimum Office versions for enum types and values (#707)
|
||||
- Added additional `CompatSettingNameValues` values: `UseWord2013TrackBottomHyphenation`, `AllowHyphenationAtTrackBottom`, and `AllowTextAfterFloatingTableBreak` (#706)
|
||||
- Added gfxdata attribue to Arc, Curve, Line, PolyLine, Group, Image, Oval, Rect, and RoundRect shape complex types per MS-OI29500 2.1.1783-1799 (#709)
|
||||
- Added `OpenXmlPartContainer.TryGetPartById` to enable child part retrieval without exception if it does not exist (#714)
|
||||
- Added `OpenXmlPackage.StrictRelationshipFound` property that indicates whether this package contains Transitional relationships converted from Strict (#716)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Custom derived parts did not inherit known parts from its parent, causing failure when adding parts (#722)
|
||||
|
||||
### Changed
|
||||
|
||||
- Marked the property setters in `OpenXmlAttribute` as obsolete as structs should not have mutable state (#698)
|
||||
|
||||
## [2.10.1] - 2020-02-28
|
||||
|
||||
### Fixed
|
||||
|
||||
- Ensured attributes are available when `OpenXmlElement` is initialized with outer XML (#684, #692)
|
||||
- Some documentation errors (#681)
|
||||
- Removed state that made it non-thread safe to validate elements under certain conditions (#686)
|
||||
- Correctly inserts strongly-typed elements before known elements that are not strongly-typed (#690)
|
||||
|
||||
## [2.10.0] - 2020-01-10
|
||||
|
||||
### Added
|
||||
|
||||
- Added initial Office 2016 support, including `FileFormatVersion.Office2016`, `ExtendedChartPart` and other new schema elements (#586)
|
||||
- Added .NET Standard 2.0 target (#587)
|
||||
- Included symbols support for debugging (#650)
|
||||
- Exposed `IXmlNamespaceResolver` from `XmlPath` instead of formatted list of strings to expose namespace/prefix mapping (#536)
|
||||
- Implemented `IComparable<T>` and `IEquatable<T>` on `OpenXmlComparableSimpleValue` to allow comparisons without boxing (#550)
|
||||
- Added `OpenXmlPackage.RootPart` to easily access the root part on any package (#661)
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated to v4.7.0 of System.IO.Packaging which brings in a number of perf fixes (#660)
|
||||
- Consolidated data for element children/properties to reduce duplication (#540, #547, #548)
|
||||
- Replaced opaque binary data for element children constraints with declarative model (#603)
|
||||
- A number of performance fixes to minimize allocations where possible
|
||||
- 20% size reduction from 5.5mb to 4.3mb
|
||||
- The validation subsystem went through a drastic redesign. This may cause changes in what errors are reported.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed some documentation inconsistencies (#582)
|
||||
- Fixed `ToFlatOpcDocument`, `ToFlatOpcString`, `FromFlatOpcDocument`, and `FromFlatOpcString` to correctly process Alternative Format Import Parts, or "altChunk parts" (#659)
|
||||
|
||||
## [2.9.1] - 2019-03-13
|
||||
|
||||
### Changed
|
||||
|
||||
- Added a workaround for a .NET Native compiler issue that doesn't support calling `Marshal.SizeOf<T>` with a struct that contains auto-implemented properties (#569)
|
||||
- Fixed a documentation error (#528)
|
||||
|
||||
## [2.9.0] - 2018-06-08
|
||||
|
||||
### Added
|
||||
|
||||
- `ListValue` now implements `IEnumerable<T>` (#385)
|
||||
- Added a `WebExtension.Frozen` and obsoleted misspelled `Fronzen` property (#460)
|
||||
- Added an `OpenXmlPackage.CanSave` property that indicates whether a platform supports saving without closing the package (#468)
|
||||
- Simple types (except `EnumValue` and `ListValue`) now implement `IComparable<T>` and `IEquatable<T>` (#487)
|
||||
|
||||
### Changed
|
||||
|
||||
- Removed state that was carried in validators that would hold onto packages when not in use (#390)
|
||||
- `EnumSimpleType` parsing was improved and uses less allocations and caches for future use (#408)
|
||||
- Fixed a number of spelling mistakes in documentation (#462)
|
||||
- When calling `OpenXmlPackage.Save` on .NET Framework, the package is now flushed to the stream (#468)
|
||||
- Fixed race condition while performing strict translation of attributes (#480)
|
||||
- Schema data for validation uses a more compact format leading to a reduction in dll size and performance improvements for loading (#482, #483)
|
||||
- A number of APIs are marked as obsolete as they have simple workarounds and will be removed in the next major change
|
||||
- Fixed some constraint values for validation that contained Office 2007, even when it was only supported in later versions
|
||||
- Updated `System.IO.Packaging` to 4.5.0 which fixes some issues on Xamarin platforms as well as minimizes dependencies on .NET Framework
|
||||
|
||||
## [2.8.1] - 2018-01-03
|
||||
|
||||
### Changed
|
||||
|
||||
- Corrected package license file reference to show updated MIT License
|
||||
|
||||
## [2.8.0] - 2017-12-28
|
||||
|
||||
### Added
|
||||
|
||||
- Default runtime directive for better .NET Native support.
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed part saving to be encoded with UTF8 but no byte order mark. This caused some renderers to not be able to open the generated document.
|
||||
- Fixed exceptions thrown when errors are encountered while opening packages to be consistent across platforms.
|
||||
- Fixed issue on Mono platforms using System.IO.Packaging NuGet package (Xamarin, etc) when creating a document.
|
||||
- Fixed manual saving of a package when autosave is false.
|
||||
- Fixed schema constraint data and standardized serialization across platforms.
|
||||
- Upgraded to `System.IO.Packaging` version 4.4.0 which fixes some consistency with .NET Framework in opening packages.
|
||||
|
||||
## [2.7.2] - 2017-06-06
|
||||
|
||||
### Added
|
||||
|
||||
- Package now supports .NET 3.5 and .NET 4.0 in addition to .NET Standard 1.3 and .NET Framework 4.6
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed issue where assembly version wasn't set in assembly.
|
||||
|
||||
## [2.7.1] - 2017-01-31
|
||||
|
||||
### Changed
|
||||
|
||||
- Fixed crash when validation is invoked on .NET Framework with strong-naming enforced.
|
||||
|
||||
## [2.7.0] - 2017-01-24
|
||||
|
||||
### Added
|
||||
|
||||
- SDK now supports .NET Standard 1.3
|
||||
|
||||
### Changed
|
||||
|
||||
- Moved to using System.IO.Packaging from dotnet/corefx for .NET Standard 1.3 and WindowsBase for .NET 4.5.
|
||||
- Cleaned up project build system to use .NET CLI.
|
||||
|
||||
## [2.6.1] - 2016-01-15
|
||||
|
||||
### Added
|
||||
|
||||
- Added hundreds of XUnit tests. There are now a total of 1333 tests. They take about 20 minutes to run, so be patient.
|
||||
|
||||
## [2.6.0] - 2015-06-29
|
||||
|
||||
### Added
|
||||
|
||||
- Incorporated a replacement `System.IO.Packaging` that fixes some serious (but exceptional) bugs found in the WindowsBase implementation
|
||||
|
||||
[3.0.1]: https://github.com/dotnet/Open-XML-SDK/compare/v3.0.0...v3.0.1
|
||||
[3.0.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.20.0...v3.0.0
|
||||
[2.20.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.19.0...v2.20.0
|
||||
[2.19.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.18.0...v2.19.0
|
||||
[2.18.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.17.1...v2.18.0
|
||||
[2.17.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.17.0...v2.17.1
|
||||
[2.17.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.16.0...v2.17.0
|
||||
[2.16.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.15.0...v2.16.0
|
||||
[2.15.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.14.0...v2.15.0
|
||||
[2.14.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.14.0-beta1...v2.14.0
|
||||
[2.13.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.13.0...v2.13.1
|
||||
[2.13.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.13.0...v2.13.0
|
||||
[2.12.3]: https://github.com/dotnet/Open-XML-SDK/compare/v2.12.3...v2.12.1
|
||||
[2.12.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.12.1...v2.12.0
|
||||
[2.12.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.12.0...v2.11.3
|
||||
[2.11.3]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.3...v2.11.2
|
||||
[2.11.2]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.2...v2.11.1
|
||||
[2.11.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.1...v2.11.0
|
||||
[2.11.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.11.0...v2.10.1
|
||||
[2.10.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.10.1...v2.10.0
|
||||
[2.10.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.10.0...v2.9.1
|
||||
[2.9.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.9.1...v2.9.0
|
||||
[2.9.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.9.0...v2.8.1
|
||||
[2.8.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.8.1...v2.8.0
|
||||
[2.8.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.8.0...v2.7.2
|
||||
[2.7.2]: https://github.com/dotnet/Open-XML-SDK/compare/v2.7.1...v2.7.2
|
||||
[2.7.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.7.0...v2.7.1
|
||||
[2.7.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.6.1...v2.7.0
|
||||
[2.6.1]: https://github.com/dotnet/Open-XML-SDK/compare/v2.6.0...v2.6.1
|
||||
[2.6.0]: https://github.com/dotnet/Open-XML-SDK/compare/v2.5.0...v2.6.0</releaseNotes>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<tags>openxml office</tags>
|
||||
<repository type="git" url="https://github.com/dotnet/Open-XML-SDK" commit="f9e6ad7524e22b6b1f932deabc9055201b7870c0" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETFramework3.5" />
|
||||
<group targetFramework=".NETFramework4.0" />
|
||||
<group targetFramework=".NETFramework4.6" />
|
||||
<group targetFramework="net6.0">
|
||||
<dependency id="System.IO.Packaging" version="8.0.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework="net8.0">
|
||||
<dependency id="System.IO.Packaging" version="8.0.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="System.IO.Packaging" version="8.0.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
</dependencies>
|
||||
<frameworkAssemblies>
|
||||
<frameworkAssembly assemblyName="System" targetFramework=".NETFramework3.5, .NETFramework4.0, .NETFramework4.6" />
|
||||
<frameworkAssembly assemblyName="System.Xml" targetFramework=".NETFramework3.5, .NETFramework4.0, .NETFramework4.6" />
|
||||
<frameworkAssembly assemblyName="WindowsBase" targetFramework=".NETFramework3.5, .NETFramework4.0, .NETFramework4.6" />
|
||||
</frameworkAssemblies>
|
||||
</metadata>
|
||||
</package>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 26788ae187e0ecd4db028cb43a5bedb4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,122 @@
|
|||
<!-- omit in toc -->
|
||||
Open XML SDK
|
||||
============
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> [v3.0.0](https://www.nuget.org/packages/DocumentFormat.OpenXml/3.0.0) refactors and addresses some technical debt while retaining source compatibility as much as possible. You should be able to update your package and recompile with limited changes. However, binary compatibility was not a goal and will break that for some changes which are documented. PRs that introduced such changes are marked with a `breaking-change` label and were added to a list to help migrating to v3.0.0.
|
||||
>
|
||||
> Please see the [v3.0.0 milestone](https://github.com/OfficeDev/Open-XML-SDK/milestone/1) for issues and PRs that are included. For discussions, please join us at [this issue](https://github.com/OfficeDev/Open-XML-SDK/issues/1270).
|
||||
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The CI feed URL has changed as of 2 April, 2024. Please update to the new URL if using CI builds.
|
||||
|
||||
[](https://www.nuget.org/packages/DocumentFormat.OpenXml)
|
||||
[](https://office.visualstudio.com/OC/_build/latest?definitionId=7420&branchName=main)
|
||||
[](https://ointprotocol.visualstudio.com/OInteropTools/_build/latest?definitionId=21&branchName=main)
|
||||
|
||||
The Open XML SDK provides tools for working with Office Word, Excel, and PowerPoint documents. It supports scenarios such as:
|
||||
|
||||
- High-performance generation of word-processing documents, spreadsheets, and presentations.
|
||||
- Document modification, such as adding, updating, and removing content and metadata.
|
||||
- Search and replace content using regular expressions.
|
||||
- Splitting up (shredding) a file into multiple files, and combining multiple files into a single file.
|
||||
- Updating cached data and embedded spreadsheets for charts in Word/PowerPoint.
|
||||
|
||||
<!-- omit in toc -->
|
||||
# Table of Contents
|
||||
|
||||
- [Packages](#packages)
|
||||
- [Daily Builds](#daily-builds)
|
||||
- [Framework Support](#framework-support)
|
||||
- [Known Issues](#known-issues)
|
||||
- [Documentation](#documentation)
|
||||
- [If You Have How-To Questions](#if-you-have-how-to-questions)
|
||||
- [Related tools](#related-tools)
|
||||
|
||||
# Packages
|
||||
|
||||
The official release NuGet packages for Open XML SDK are on NuGet.org:
|
||||
|
||||
| Package | Download | Prerelease |
|
||||
|---------|----------|------------|
|
||||
| DocumentFormat.OpenXml.Framework | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Framework) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Framework) |
|
||||
| DocumentFormat.OpenXml | [](https://www.nuget.org/packages/DocumentFormat.OpenXml) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml) |
|
||||
| DocumentFormat.OpenXml.Linq | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Linq) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Linq) |
|
||||
| DocumentFormat.OpenXml.Features | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Features) | [](https://www.nuget.org/packages/DocumentFormat.OpenXml.Features) |
|
||||
|
||||
## Daily Builds
|
||||
|
||||
The NuGet package for the latest builds of the Open XML SDK is available as a custom feed on an Azure blob. Stable releases here will be mirrored onto NuGet and will be identical. You must set up a [NuGet.config](https://docs.microsoft.com/en-us/nuget/reference/nuget-config-file) file that looks similar to this:
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="OpenXmlCI" value="https://ooxml.blob.core.windows.net/feed/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
For latests changes, please see the [changelog](CHANGELOG.md)
|
||||
|
||||
## Framework Support
|
||||
|
||||
The package currently supports the following targets:
|
||||
|
||||
- .NET Framework 3.5, 4.0, 4.6
|
||||
- .NET Standard 2.0
|
||||
- .NET 6.0
|
||||
|
||||
For details on platform support, including other runtimes such as Mono and Unity, please see the docs at https://docs.microsoft.com/en-us/dotnet/standard/net-standard.
|
||||
|
||||
# Known Issues
|
||||
|
||||
- On .NET Core and .NET 5 and following, ZIP packages do not have a way to stream data. Thus, the working set can explode in certain situations. This is a [known issue](https://github.com/dotnet/runtime/issues/1544).
|
||||
- On .NET Framework, an `IsolatedStorageException` may be thrown under certain circumstances. This generally occurs when manipulating a large document in an environment with an AppDomain that does not have enough evidence. A sample with a workaround is available [here](/samples/IsolatedStorageExceptionWorkaround).
|
||||
|
||||
# Documentation
|
||||
|
||||
Please see [Open XML SDK](https://learn.microsoft.com/en-us/office/open-xml/open-xml-sdk) for the official documentation.
|
||||
|
||||
# If you have how-to questions
|
||||
|
||||
- [Stack Overflow](http://stackoverflow.com) (tags: **openxml** or **openxml-sdk**)
|
||||
- How-to samples:
|
||||
- [Spreadsheet Samples](https://learn.microsoft.com/en-us/office/open-xml/spreadsheet/overview)
|
||||
- [Presentation Samples](https://learn.microsoft.com/en-us/office/open-xml/presentation/overview)
|
||||
- [Wordprocessing Samples](https://learn.microsoft.com/en-us/office/open-xml/word/overview)
|
||||
|
||||
# Related tools
|
||||
|
||||
- **[Open XML SDK 2.5 Productivity Tool](https://github.com/OfficeDev/Open-XML-SDK/releases/tag/v2.5)**: The Productivity Tool provides viewing and code generation compatible with the Open XML SDK 2.5.
|
||||
- **[Open XML Powertools](https://github.com/EricWhiteDev/Open-Xml-PowerTools)**: This provides example code and guidance for implementing a wide range of Open XML scenarios.
|
||||
- **[ClosedXml](https://github.com/closedxml/closedxml)**: This library provides a simplified object model on top of the OpenXml SDK for manipulating and creating Excel documents.
|
||||
- **[OfficeIMO](https://github.com/EvotecIT/OfficeIMO)**: This library provides a simplified object model on top of the OpenXml SDK manipulating and creating Word documents.
|
||||
- **[OpenXML-Office](https://github.com/DraviaVemal/OpenXML-Office)**: This nuget library provides a simplified object model on top of the OpenXml SDK manipulating and creating PPT and Excel documents.
|
||||
- **[Serialize.OpenXml.CodeGen](https://github.com/rmboggs/Serialize.OpenXml.CodeGen)**: This is a tool that converts an OpenXml document into the .NET code required to create it.
|
||||
- **[Html2OpenXml](https://github.com/onizet/html2openxml)**: This is a tool that takes HTML and converts it to an OpenXml document.
|
||||
- **[DocxToSource](https://github.com/rmboggs/DocxToSource)**: This is a tool designed to be a replacement for the old OpenXML SDK Productivity Tool.
|
||||
- **[OOXML Viewer](https://github.com/yuenm18/ooxml-viewer-vscode)**: This is an extension for Visual Studio Code to View and Edit the xml parts of an Office Open XML file and to view a diff with the previous version of an OOXML part when saved from an outside program. Search "OOXML" in the VS Code extensions tab or download it from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=yuenm18.ooxml-viewer)
|
||||
- **[ShapeCrawler](https://github.com/ShapeCrawler/ShapeCrawler)**: This library provides a simplified object model on top of the OpenXml SDK to manipulate PowerPoint documents.
|
||||
- **[OOXML Validator](https://github.com/mikeebowen/ooxml-validator-vscode)**: VS Code extension to validate Office Open XML files. Search "OOXML" in the VS Code extensions tab or download it from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=mikeebowen.ooxml-validator-vscode)
|
||||
|
||||
# How can I contribute?
|
||||
|
||||
We welcome contributions! Many people all over the world have helped make this project better.
|
||||
|
||||
- [Contributing](./CONTRIBUTING.md) explains what kinds of contributions we welcome
|
||||
|
||||
# Reporting security issues and security bugs
|
||||
|
||||
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://www.microsoft.com/en-us/msrc/faqs-report-an-issue?rtc=1).
|
||||
|
||||
# .NET Foundation
|
||||
The Open XML SDK is a [.NET Foundation](https://dotnetfoundation.org/projects) project.
|
||||
|
||||
This project has adopted the code of conduct defined by the [Contributor Covenant](https://www.contributor-covenant.org/) to clarify expected behavior in our community. For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/about/code-of-conduct).
|
||||
|
||||
# License
|
||||
|
||||
The Open XML SDK is licensed under the [MIT](./LICENSE) license.
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e13e86285dd3b284286fa900247fbba7
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,136 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a4531285b05ca44479cec8551be8d60e
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 6934086728263231946
|
||||
second: icon_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: icon_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 64
|
||||
height: 64
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: ac961e71423da3060800000000000000
|
||||
internalID: 6934086728263231946
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 739fff5df34d1714683aa63379f74997
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/Packages/DocumentFormat.OpenXml.Framework.3.1.1/lib/netstandard2.0.meta
vendored
Normal file
8
Assets/Packages/DocumentFormat.OpenXml.Framework.3.1.1/lib/netstandard2.0.meta
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6c63198c399464243987b4586fc98461
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a0cbd15f97881bd46ba09a5e4a93acbe
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1da19ad0276dc204386cbf0ea8b7024d
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0acfa03825090d64dbd22356207f452a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>ExcelNumberFormat</id>
|
||||
<version>1.1.0</version>
|
||||
<authors>ExcelNumberFormat developers</authors>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<icon>icon.png</icon>
|
||||
<projectUrl>https://github.com/andersnm/ExcelNumberFormat</projectUrl>
|
||||
<description>.NET library to parse ECMA-376 number format strings and format values like Excel and other spreadsheet softwares.</description>
|
||||
<tags>excel,formatting,numfmt,formatcode</tags>
|
||||
<dependencies>
|
||||
<group targetFramework=".NETFramework2.0" />
|
||||
<group targetFramework=".NETStandard1.0">
|
||||
<dependency id="NETStandard.Library" version="1.6.1" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.0" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e6320f78470d22e4b9a693da7ebc309e
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1,136 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8224defad2c47c14196d6792621a6bf5
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 6934086728263231946
|
||||
second: icon_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: icon_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 128
|
||||
height: 128
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: ac961e71423da3060800000000000000
|
||||
internalID: 6934086728263231946
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1176c2a1cc46a2744aa436d4690f3629
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e57f5ceee7b62e749b59c981c9832788
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.dll
vendored
Normal file
BIN
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.dll
vendored
Normal file
Binary file not shown.
23
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.dll.meta
vendored
Normal file
23
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.dll.meta
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 544e4365c22154e45b61e103730a310d
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
110
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.xml
vendored
Normal file
110
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.xml
vendored
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>ExcelNumberFormat</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="M:ExcelNumberFormat.CompatibleConvert.ToString(System.Object,System.IFormatProvider)">
|
||||
<summary>
|
||||
A backward-compatible version of <see cref="M:System.Convert.ToString(System.Object,System.IFormatProvider)"/>.
|
||||
Starting from .net Core 3.0 the default precision used for formatting floating point number has changed.
|
||||
To always format numbers the same way, no matter what version of runtime is used, we specify the precision explicitly.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ExcelNumberFormat.ExcelDateTime">
|
||||
<summary>
|
||||
Similar to regular .NET DateTime, but also supports 0/1 1900 and 29/2 1900.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ExcelNumberFormat.ExcelDateTime.AdjustedDateTime">
|
||||
<summary>
|
||||
The closest .NET DateTime to the specified excel date.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ExcelNumberFormat.ExcelDateTime.AdjustDaysPost">
|
||||
<summary>
|
||||
Number of days to adjust by in post.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.ExcelDateTime.#ctor(System.Double,System.Boolean)">
|
||||
<summary>
|
||||
Constructs a new ExcelDateTime from a numeric value.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.ExcelDateTime.#ctor(System.DateTime)">
|
||||
<summary>
|
||||
Wraps a regular .NET datetime.
|
||||
</summary>
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.Formatter.FormatThousands(System.String,System.Boolean,System.Boolean,System.Collections.Generic.List{System.String},System.Globalization.CultureInfo,System.Text.StringBuilder)">
|
||||
<summary>
|
||||
Prints right-aligned, left-padded integer before the decimal separator. With optional most-significant zero.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.Formatter.FormatDecimals(System.String,System.Collections.Generic.List{System.String},System.Text.StringBuilder)">
|
||||
<summary>
|
||||
Prints left-aligned, right-padded integer after the decimal separator. Does not print significant zero.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.Formatter.FormatDenominator(System.String,System.Collections.Generic.List{System.String},System.Text.StringBuilder)">
|
||||
<summary>
|
||||
Prints left-aligned, left-padded fraction integer denominator.
|
||||
Assumes tokens contain only placeholders, valueString has fewer or equal number of digits as tokens.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.Formatter.GetLeftAlignedValueDigit(System.String,System.String,System.Int32,System.Boolean,System.Int32@)">
|
||||
<summary>
|
||||
Returns the first digit from valueString. If the token is '?'
|
||||
returns the first significant digit from valueString, or '0' if there are no significant digits.
|
||||
The out valueIndex parameter contains the offset to the next digit in valueString.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:ExcelNumberFormat.NumberFormat">
|
||||
<summary>
|
||||
Parse ECMA-376 number format strings and format values like Excel and other spreadsheet softwares.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.NumberFormat.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:ExcelNumberFormat.NumberFormat"/> class.
|
||||
</summary>
|
||||
<param name="formatString">The number format string.</param>
|
||||
</member>
|
||||
<member name="P:ExcelNumberFormat.NumberFormat.IsValid">
|
||||
<summary>
|
||||
Gets a value indicating whether the number format string is valid.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ExcelNumberFormat.NumberFormat.FormatString">
|
||||
<summary>
|
||||
Gets the number format string.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ExcelNumberFormat.NumberFormat.IsDateTimeFormat">
|
||||
<summary>
|
||||
Gets a value indicating whether the format represents a DateTime
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:ExcelNumberFormat.NumberFormat.IsTimeSpanFormat">
|
||||
<summary>
|
||||
Gets a value indicating whether the format represents a TimeSpan
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.NumberFormat.Format(System.Object,System.Globalization.CultureInfo,System.Boolean)">
|
||||
<summary>
|
||||
Formats a value with this number format in a specified culture.
|
||||
</summary>
|
||||
<param name="value">The value to format.</param>
|
||||
<param name="culture">The culture to use for formatting.</param>
|
||||
<param name="isDate1904">If false, numeric dates start on January 0 1900 and include February 29 1900 - like Excel on PC. If true, numeric dates start on January 1 1904 - like Excel on Mac.</param>
|
||||
<returns>The formatted string.</returns>
|
||||
</member>
|
||||
<member name="M:ExcelNumberFormat.Parser.ParseNumberTokens(System.Collections.Generic.List{System.String},System.Int32,System.Collections.Generic.List{System.String}@,System.Boolean@,System.Collections.Generic.List{System.String}@)">
|
||||
<summary>
|
||||
Parses as many placeholders and literals needed to format a number with optional decimals.
|
||||
Returns number of tokens parsed, or 0 if the tokens didn't form a number.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
7
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.xml.meta
vendored
Normal file
7
Assets/Packages/ExcelNumberFormat.1.1.0/lib/netstandard2.0/ExcelNumberFormat.xml.meta
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4a5c4cf341a98204dae0bb00a3207b7b
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0ed91761905bea14ea8f64d6cf8ca14a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>RBush.Signed</id>
|
||||
<version>4.0.0</version>
|
||||
<title>RBush</title>
|
||||
<authors>viceroypenguin</authors>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<readme>readme.md</readme>
|
||||
<description>Spatial Index data structure; used to make it easier to find data points on a two dimensional plane.</description>
|
||||
<copyright>Copyright © 2017-2024 Turning Code, LLC (and others)</copyright>
|
||||
<tags>.NET R-Tree Algorithm tree search spatial index</tags>
|
||||
<repository type="git" url="https://github.com/viceroypenguin/RBush" branch="refs/heads/master" commit="b8690322abac35d835baa2fdca4a3918ed77a910" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETFramework4.7" />
|
||||
<group targetFramework="net8.0" />
|
||||
<group targetFramework=".NETStandard2.0" />
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 61dba2885a45fb743b14d62910960c8d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2b31c974c339e9547bfc82b136b6f6fb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 88578e3db5b93e54d91a52d038afd034
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bc831b832c743eb428d80f84265ada77
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,907 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>RBush</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="M:RBush.ArgumentNullException.ThrowIfNull(System.Object,System.String)">
|
||||
<summary>Throws an <see cref="T:RBush.ArgumentNullException"/> if <paramref name="argument"/> is null.</summary>
|
||||
<param name="argument">The reference type argument to validate as non-null.</param>
|
||||
<param name="paramName">The name of the parameter with which <paramref name="argument"/> corresponds.</param>
|
||||
</member>
|
||||
<member name="T:RBush.Envelope">
|
||||
<summary>
|
||||
A bounding envelope, used to identify the bounds of of the points within
|
||||
a particular node.
|
||||
</summary>
|
||||
<param name="MinX">The minimum X value of the bounding box.</param>
|
||||
<param name="MinY">The minimum Y value of the bounding box.</param>
|
||||
<param name="MaxX">The maximum X value of the bounding box.</param>
|
||||
<param name="MaxY">The maximum Y value of the bounding box.</param>
|
||||
</member>
|
||||
<member name="M:RBush.Envelope.#ctor(System.Double,System.Double,System.Double,System.Double)">
|
||||
<summary>
|
||||
A bounding envelope, used to identify the bounds of of the points within
|
||||
a particular node.
|
||||
</summary>
|
||||
<param name="MinX">The minimum X value of the bounding box.</param>
|
||||
<param name="MinY">The minimum Y value of the bounding box.</param>
|
||||
<param name="MaxX">The maximum X value of the bounding box.</param>
|
||||
<param name="MaxY">The maximum Y value of the bounding box.</param>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.MinX">
|
||||
<summary>The minimum X value of the bounding box.</summary>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.MinY">
|
||||
<summary>The minimum Y value of the bounding box.</summary>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.MaxX">
|
||||
<summary>The maximum X value of the bounding box.</summary>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.MaxY">
|
||||
<summary>The maximum Y value of the bounding box.</summary>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.Area">
|
||||
<summary>
|
||||
The calculated area of the bounding box.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.Margin">
|
||||
<summary>
|
||||
Half of the linear perimeter of the bounding box
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.Envelope.Extend(RBush.Envelope@)">
|
||||
<summary>
|
||||
Extends a bounding box to include another bounding box
|
||||
</summary>
|
||||
<param name="other">The other bounding box</param>
|
||||
<returns>A new bounding box that encloses both bounding boxes.</returns>
|
||||
<remarks>Does not affect the current bounding box.</remarks>
|
||||
</member>
|
||||
<member name="M:RBush.Envelope.Intersection(RBush.Envelope@)">
|
||||
<summary>
|
||||
Intersects a bounding box to only include the common area
|
||||
of both bounding boxes
|
||||
</summary>
|
||||
<param name="other">The other bounding box</param>
|
||||
<returns>A new bounding box that is the intersection of both bounding boxes.</returns>
|
||||
<remarks>Does not affect the current bounding box.</remarks>
|
||||
</member>
|
||||
<member name="M:RBush.Envelope.Contains(RBush.Envelope@)">
|
||||
<summary>
|
||||
Determines whether <paramref name="other"/> is contained
|
||||
within this bounding box.
|
||||
</summary>
|
||||
<param name="other">The other bounding box</param>
|
||||
<returns>
|
||||
<see langword="true" /> if <paramref name="other"/> is
|
||||
completely contained within this bounding box;
|
||||
<see langword="false" /> otherwise.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:RBush.Envelope.Intersects(RBush.Envelope@)">
|
||||
<summary>
|
||||
Determines whether <paramref name="other"/> intersects
|
||||
this bounding box.
|
||||
</summary>
|
||||
<param name="other">The other bounding box</param>
|
||||
<returns>
|
||||
<see langword="true" /> if <paramref name="other"/> is
|
||||
intersects this bounding box in any way;
|
||||
<see langword="false" /> otherwise.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.InfiniteBounds">
|
||||
<summary>
|
||||
A bounding box that contains the entire 2-d plane.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.Envelope.EmptyBounds">
|
||||
<summary>
|
||||
An empty bounding box.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RBush.ISpatialData">
|
||||
<summary>
|
||||
Exposes an <see cref="P:RBush.ISpatialData.Envelope"/> that describes the
|
||||
bounding box of current object.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.ISpatialData.Envelope">
|
||||
<summary>
|
||||
The bounding box of the current object.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RBush.ISpatialDatabase`1">
|
||||
<summary>
|
||||
Provides the base interface for the abstraction for
|
||||
an updateable data store of elements on a 2-d plane.
|
||||
</summary>
|
||||
<typeparam name="T">The type of elements in the index.</typeparam>
|
||||
</member>
|
||||
<member name="M:RBush.ISpatialDatabase`1.Insert(`0)">
|
||||
<summary>
|
||||
Adds an object to the <see cref="T:RBush.ISpatialDatabase`1"/>
|
||||
</summary>
|
||||
<param name="item">
|
||||
The object to be added to <see cref="T:RBush.ISpatialDatabase`1"/>.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:RBush.ISpatialDatabase`1.Delete(`0)">
|
||||
<summary>
|
||||
Removes an object from the <see cref="T:RBush.ISpatialDatabase`1"/>.
|
||||
</summary>
|
||||
<param name="item">
|
||||
The object to be removed from the <see cref="T:RBush.ISpatialDatabase`1"/>.
|
||||
</param>
|
||||
<returns><see langword="bool" /> indicating whether the item was removed.</returns>
|
||||
</member>
|
||||
<member name="M:RBush.ISpatialDatabase`1.Clear">
|
||||
<summary>
|
||||
Removes all elements from the <see cref="T:RBush.ISpatialDatabase`1"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.ISpatialDatabase`1.BulkLoad(System.Collections.Generic.IEnumerable{`0})">
|
||||
<summary>
|
||||
Adds all of the elements from the collection to the <see cref="T:RBush.ISpatialDatabase`1"/>.
|
||||
</summary>
|
||||
<param name="items">
|
||||
A collection of items to add to the <see cref="T:RBush.ISpatialDatabase`1"/>.
|
||||
</param>
|
||||
<remarks>
|
||||
For multiple items, this method is more performant than
|
||||
adding items individually via <see cref="M:RBush.ISpatialDatabase`1.Insert(`0)"/>.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:RBush.ISpatialIndex`1">
|
||||
<summary>
|
||||
Provides the base interface for the abstraction of
|
||||
an index to find points within a bounding box.
|
||||
</summary>
|
||||
<typeparam name="T">The type of elements in the index.</typeparam>
|
||||
</member>
|
||||
<member name="M:RBush.ISpatialIndex`1.Search">
|
||||
<summary>
|
||||
Get all of the elements within the current <see cref="T:RBush.ISpatialIndex`1"/>.
|
||||
</summary>
|
||||
<returns>
|
||||
A list of every element contained in the <see cref="T:RBush.ISpatialIndex`1"/>.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:RBush.ISpatialIndex`1.Search(RBush.Envelope@)">
|
||||
<summary>
|
||||
Get all of the elements from this <see cref="T:RBush.ISpatialIndex`1"/>
|
||||
within the <paramref name="boundingBox"/> bounding box.
|
||||
</summary>
|
||||
<param name="boundingBox">The area for which to find elements.</param>
|
||||
<returns>
|
||||
A list of the points that are within the bounding box
|
||||
from this <see cref="T:RBush.ISpatialIndex`1"/>.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="T:RBush.RBush`1">
|
||||
<summary>
|
||||
An implementation of the R-tree data structure for 2-d spatial indexing.
|
||||
</summary>
|
||||
<typeparam name="T">The type of elements in the index.</typeparam>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Root">
|
||||
<summary>
|
||||
The root of the R-tree.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Envelope">
|
||||
<summary>
|
||||
The bounding box of all elements currently in the data structure.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.#ctor">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:RBush.RBush`1"/> that is
|
||||
empty and has the default tree width and default <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.#ctor(System.Int32)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:RBush.RBush`1"/> that is
|
||||
empty and has a custom max number of elements per tree node
|
||||
and default <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
|
||||
</summary>
|
||||
<param name="maxEntries"></param>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:RBush.RBush`1"/> that is
|
||||
empty and has a custom max number of elements per tree node
|
||||
and a custom <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
|
||||
</summary>
|
||||
<param name="maxEntries"></param>
|
||||
<param name="comparer"></param>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Count">
|
||||
<summary>
|
||||
Gets the number of items currently stored in the <see cref="T:RBush.RBush`1"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.Clear">
|
||||
<summary>
|
||||
Removes all elements from the <see cref="T:RBush.RBush`1"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.Search">
|
||||
<summary>
|
||||
Get all of the elements within the current <see cref="T:RBush.RBush`1"/>.
|
||||
</summary>
|
||||
<returns>
|
||||
A list of every element contained in the <see cref="T:RBush.RBush`1"/>.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.Search(RBush.Envelope@)">
|
||||
<summary>
|
||||
Get all of the elements from this <see cref="T:RBush.RBush`1"/>
|
||||
within the <paramref name="boundingBox"/> bounding box.
|
||||
</summary>
|
||||
<param name="boundingBox">The area for which to find elements.</param>
|
||||
<returns>
|
||||
A list of the points that are within the bounding box
|
||||
from this <see cref="T:RBush.RBush`1"/>.
|
||||
</returns>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.Insert(`0)">
|
||||
<summary>
|
||||
Adds an object to the <see cref="T:RBush.RBush`1"/>
|
||||
</summary>
|
||||
<param name="item">
|
||||
The object to be added to <see cref="T:RBush.RBush`1"/>.
|
||||
</param>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.BulkLoad(System.Collections.Generic.IEnumerable{`0})">
|
||||
<summary>
|
||||
Adds all of the elements from the collection to the <see cref="T:RBush.RBush`1"/>.
|
||||
</summary>
|
||||
<param name="items">
|
||||
A collection of items to add to the <see cref="T:RBush.RBush`1"/>.
|
||||
</param>
|
||||
<remarks>
|
||||
For multiple items, this method is more performant than
|
||||
adding items individually via <see cref="M:RBush.RBush`1.Insert(`0)"/>.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:RBush.RBush`1.Delete(`0)">
|
||||
<summary>
|
||||
Removes an object from the <see cref="T:RBush.RBush`1"/>.
|
||||
</summary>
|
||||
<param name="item">
|
||||
The object to be removed from the <see cref="T:RBush.RBush`1"/>.
|
||||
</param>
|
||||
<returns><see langword="bool" /> indicating whether the item was deleted.</returns>
|
||||
</member>
|
||||
<member name="T:RBush.RBush`1.Node">
|
||||
<summary>
|
||||
A node in an R-tree data structure containing other nodes
|
||||
or elements of type <typeparamref name="T"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Node.Children">
|
||||
<summary>
|
||||
The descendent nodes or elements of a <see cref="T:RBush.RBush`1.Node"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Node.Height">
|
||||
<summary>
|
||||
The current height of a <see cref="T:RBush.RBush`1.Node"/>.
|
||||
</summary>
|
||||
<remarks>
|
||||
A node containing individual elements has a <see cref="P:RBush.RBush`1.Node.Height"/> of 1.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Node.IsLeaf">
|
||||
<summary>
|
||||
Determines whether the current <see cref="T:RBush.RBush`1.Node"/> is a leaf node.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RBush.RBush`1.Node.Envelope">
|
||||
<summary>
|
||||
Gets the bounding box of all of the descendents of the
|
||||
current <see cref="T:RBush.RBush`1.Node"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RBush.RBushExtensions">
|
||||
<summary>
|
||||
Extension methods for the <see cref="T:RBush.RBush`1"/> object.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RBush.RBushExtensions.Knn``1(RBush.ISpatialIndex{``0},System.Int32,System.Double,System.Double,System.Nullable{System.Double},System.Func{``0,System.Boolean})">
|
||||
<summary>
|
||||
Get the <paramref name="k"/> nearest neighbors to a specific point.
|
||||
</summary>
|
||||
<typeparam name="T">The type of elements in the index.</typeparam>
|
||||
<param name="tree">An index of points.</param>
|
||||
<param name="k">The number of points to retrieve.</param>
|
||||
<param name="x">The x-coordinate of the center point.</param>
|
||||
<param name="y">The y-coordinate of the center point.</param>
|
||||
<param name="maxDistance">The maximum distance of points to be considered "near"; optional.</param>
|
||||
<param name="predicate">A function to test each element for a condition; optional.</param>
|
||||
<returns>The list of up to <paramref name="k"/> elements nearest to the given point.</returns>
|
||||
</member>
|
||||
<member name="M:RBush.RBushExtensions.DistanceTo(RBush.Envelope@,System.Double,System.Double)">
|
||||
<summary>
|
||||
Calculates the distance from the borders of an <see cref="T:RBush.Envelope"/>
|
||||
to a given point.
|
||||
</summary>
|
||||
<param name="envelope">The <see cref="T:RBush.Envelope"/> from which to find the distance</param>
|
||||
<param name="x">The x-coordinate of the given point</param>
|
||||
<param name="y">The y-coordinate of the given point</param>
|
||||
<returns>The calculated Euclidean shortest distance from the <paramref name="envelope"/> to a given point.</returns>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
|
||||
<summary>
|
||||
Specifies that null is allowed as an input even if the corresponding type disallows it.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
|
||||
<summary>
|
||||
Specifies that null is disallowed as an input even if the corresponding type allows it.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
|
||||
<summary>
|
||||
Applied to a method that will never return under any circumstance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
|
||||
<summary>
|
||||
Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
|
||||
<summary>
|
||||
Initializes the attribute with the specified parameter value.
|
||||
</summary>
|
||||
<param name="parameterValue">
|
||||
The condition parameter value. Code after the method will be considered unreachable
|
||||
by diagnostics if the argument to the associated parameter matches this value.
|
||||
</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
|
||||
<summary>
|
||||
Gets the condition parameter value.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.ExperimentalAttribute">
|
||||
<summary>
|
||||
Indicates that an API is experimental and it may change in the future.
|
||||
</summary>
|
||||
<remarks>
|
||||
This attribute allows call sites to be flagged with a diagnostic that indicates that an experimental
|
||||
feature is used. Authors can use this attribute to ship preview features in their assemblies.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.ExperimentalAttribute"/> class,
|
||||
specifying the ID that the compiler will use when reporting a use of the API the attribute applies to.
|
||||
</summary>
|
||||
<param name="diagnosticId">The ID that the compiler will use when reporting a use of the API the attribute applies to.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.DiagnosticId">
|
||||
<summary>
|
||||
Gets the ID that the compiler will use when reporting a use of the API the attribute applies to.
|
||||
</summary>
|
||||
<value>The unique diagnostic ID.</value>
|
||||
<remarks>
|
||||
The diagnostic ID is shown in build output for warnings and errors.
|
||||
<para>This property represents the unique ID that can be used to suppress the warnings or errors, if needed.</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.UrlFormat">
|
||||
<summary>
|
||||
Gets or sets the URL for corresponding documentation.
|
||||
The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.
|
||||
</summary>
|
||||
<value>The format string that represents a URL to corresponding documentation.</value>
|
||||
<remarks>An example format string is <c>https://contoso.com/obsoletion-warnings/{0}</c>.</remarks>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
|
||||
<summary>
|
||||
Specifies that an output may be null even if the corresponding type disallows it.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
|
||||
<summary>
|
||||
Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
|
||||
<summary>
|
||||
Initializes the attribute with the specified return value condition.
|
||||
</summary>
|
||||
<param name="returnValue">The return value condition. If the method returns this value, the associated parameter may be null.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
|
||||
<summary>
|
||||
Gets the return value condition.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
|
||||
<summary>
|
||||
Specifies that the method or property will ensure that the listed field and property members have not-null values.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes the attribute with a field or property member.
|
||||
</summary>
|
||||
<param name="member">The field or property member that is promised to be not-null.</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
|
||||
<summary>
|
||||
Initializes the attribute with the list of field and property members.
|
||||
</summary>
|
||||
<param name="members">The list of field and property members that are promised to be not-null.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
|
||||
<summary>
|
||||
Gets field or property member names.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
|
||||
<summary>
|
||||
Specifies that the method or property will ensure that the listed field and property
|
||||
members have not-null values when returning with the specified return value condition.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
|
||||
<summary>
|
||||
Initializes the attribute with the specified return value condition and a field or property member.
|
||||
</summary>
|
||||
<param name="returnValue">The return value condition. If the method returns this value, the associated parameter will not be null.</param>
|
||||
<param name="member">The field or property member that is promised to be not-null.</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
|
||||
<summary>
|
||||
Initializes the attribute with the specified return value condition and list of field and property members.
|
||||
</summary>
|
||||
<param name="returnValue">The return value condition. If the method returns this value, the associated parameter will not be null.</param>
|
||||
<param name="members">The list of field and property members that are promised to be not-null.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
|
||||
<summary>
|
||||
Gets the return value condition.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
|
||||
<summary>
|
||||
Gets field or property member names.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
|
||||
<summary>
|
||||
Specifies that an output will not be null even if the corresponding type allows it.
|
||||
Specifies that an input argument was not null when the call returns.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
|
||||
<summary>
|
||||
Specifies that the output will be non-null if the named parameter is non-null.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes the attribute with the associated parameter name.
|
||||
</summary>
|
||||
<param name="parameterName">The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
|
||||
<summary>
|
||||
Gets the associated parameter name.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
|
||||
<summary>
|
||||
Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
|
||||
<summary>
|
||||
Initializes the attribute with the specified return value condition.
|
||||
</summary>
|
||||
<param name="returnValue">The return value condition. If the method returns this value, the associated parameter will not be null.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
|
||||
<summary>Gets the return value condition.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.SetsRequiredMembersAttribute">
|
||||
<summary>
|
||||
Specifies that this constructor sets all required members for the current type,
|
||||
and callers do not need to set any required members themselves.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute">
|
||||
<summary>
|
||||
Specifies the syntax used in a string.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes the <see cref="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute"/> with the identifier of the syntax used.
|
||||
</summary>
|
||||
<param name="syntax">The syntax identifier.</param>
|
||||
</member>
|
||||
<member name="M:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.#ctor(System.String,System.Object[])">
|
||||
<summary>Initializes the <see cref="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute"/> with the identifier of the syntax used.</summary>
|
||||
<param name="syntax">The syntax identifier.</param>
|
||||
<param name="arguments">Optional arguments associated with the specific syntax employed.</param>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Syntax">
|
||||
<summary>Gets the identifier of the syntax used.</summary>
|
||||
</member>
|
||||
<member name="P:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Arguments">
|
||||
<summary>Optional arguments associated with the specific syntax employed.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.CompositeFormat">
|
||||
<summary>The syntax identifier for strings containing composite formats for string formatting.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.DateOnlyFormat">
|
||||
<summary>The syntax identifier for strings containing date format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.DateTimeFormat">
|
||||
<summary>The syntax identifier for strings containing date and time format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.EnumFormat">
|
||||
<summary>The syntax identifier for strings containing <see cref="T:System.Enum"/> format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.GuidFormat">
|
||||
<summary>The syntax identifier for strings containing <see cref="T:System.Guid"/> format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Json">
|
||||
<summary>The syntax identifier for strings containing JavaScript Object Notation (JSON).</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.NumericFormat">
|
||||
<summary>The syntax identifier for strings containing numeric format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Regex">
|
||||
<summary>The syntax identifier for strings containing regular expressions.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.TimeOnlyFormat">
|
||||
<summary>The syntax identifier for strings containing time format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.TimeSpanFormat">
|
||||
<summary>The syntax identifier for strings containing <see cref="T:System.TimeSpan"/> format specifiers.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Uri">
|
||||
<summary>The syntax identifier for strings containing URIs.</summary>
|
||||
</member>
|
||||
<member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Xml">
|
||||
<summary>The syntax identifier for strings containing XML.</summary>
|
||||
</member>
|
||||
<member name="T:System.Diagnostics.CodeAnalysis.UnscopedRefAttribute">
|
||||
<summary>
|
||||
Used to indicate a byref escapes and is not scoped.
|
||||
</summary>
|
||||
<remarks>
|
||||
<para>
|
||||
There are several cases where the C# compiler treats a <see langword="ref"/> as implicitly
|
||||
<see langword="scoped"/> - where the compiler does not allow the <see langword="ref"/> to escape the method.
|
||||
</para>
|
||||
<para>
|
||||
For example:
|
||||
<list type="number">
|
||||
<item><see langword="this"/> for <see langword="struct"/> instance methods.</item>
|
||||
<item><see langword="ref"/> parameters that refer to <see langword="ref"/> <see langword="struct"/> types.</item>
|
||||
<item><see langword="out"/> parameters.</item>
|
||||
</list>
|
||||
</para>
|
||||
<para>
|
||||
This attribute is used in those instances where the <see langword="ref"/> should be allowed to escape.
|
||||
</para>
|
||||
<para>
|
||||
Applying this attribute, in any form, has impact on consumers of the applicable API. It is necessary for
|
||||
API authors to understand the lifetime implications of applying this attribute and how it may impact their users.
|
||||
</para>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:System.Index">
|
||||
<summary>Represent a type can be used to index a collection either from the start or the end.</summary>
|
||||
<remarks>
|
||||
Index is used by the C# compiler to support the new index syntax
|
||||
<code>
|
||||
int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ;
|
||||
int lastElement = someArray[^1]; // lastElement = 5
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:System.Index.#ctor(System.Int32,System.Boolean)">
|
||||
<summary>Construct an Index using a value and indicating if the index is from the start or from the end.</summary>
|
||||
<param name="value">The index value. it has to be zero or positive number.</param>
|
||||
<param name="fromEnd">Indicating if the index is from the start or from the end.</param>
|
||||
<remarks>
|
||||
If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:System.Index.Start">
|
||||
<summary>Create an Index pointing at first element.</summary>
|
||||
</member>
|
||||
<member name="P:System.Index.End">
|
||||
<summary>Create an Index pointing at beyond last element.</summary>
|
||||
</member>
|
||||
<member name="M:System.Index.FromStart(System.Int32)">
|
||||
<summary>Create an Index from the start at the position indicated by the value.</summary>
|
||||
<param name="value">The index value from the start.</param>
|
||||
</member>
|
||||
<member name="M:System.Index.FromEnd(System.Int32)">
|
||||
<summary>Create an Index from the end at the position indicated by the value.</summary>
|
||||
<param name="value">The index value from the end.</param>
|
||||
</member>
|
||||
<member name="P:System.Index.Value">
|
||||
<summary>Returns the index value.</summary>
|
||||
</member>
|
||||
<member name="P:System.Index.IsFromEnd">
|
||||
<summary>Indicates whether the index is from the start or the end.</summary>
|
||||
</member>
|
||||
<member name="M:System.Index.GetOffset(System.Int32)">
|
||||
<summary>Calculate the offset from the start using the giving collection length.</summary>
|
||||
<param name="length">The length of the collection that the Index will be used with. length has to be a positive value</param>
|
||||
<remarks>
|
||||
For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
|
||||
we don't validate either the returned offset is greater than the input length.
|
||||
It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
|
||||
then used to index a collection will get out of range exception which will be same affect as the validation.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:System.Index.Equals(System.Object)">
|
||||
<summary>Indicates whether the current Index object is equal to another object of the same type.</summary>
|
||||
<param name="value">An object to compare with this object</param>
|
||||
</member>
|
||||
<member name="M:System.Index.Equals(System.Index)">
|
||||
<summary>Indicates whether the current Index object is equal to another Index object.</summary>
|
||||
<param name="other">An object to compare with this object</param>
|
||||
</member>
|
||||
<member name="M:System.Index.GetHashCode">
|
||||
<summary>Returns the hash code for this instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Index.op_Implicit(System.Int32)~System.Index">
|
||||
<summary>Converts integer number to an Index.</summary>
|
||||
</member>
|
||||
<member name="M:System.Index.ToString">
|
||||
<summary>Converts the value of the current Index object to its equivalent string representation.</summary>
|
||||
</member>
|
||||
<member name="T:System.Range">
|
||||
<summary>Represent a range has start and end indexes.</summary>
|
||||
<remarks>
|
||||
Range is used by the C# compiler to support the range syntax.
|
||||
<code>
|
||||
int[] someArray = new int[5] { 1, 2, 3, 4, 5 };
|
||||
int[] subArray1 = someArray[0..2]; // { 1, 2 }
|
||||
int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 }
|
||||
</code>
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:System.Range.Start">
|
||||
<summary>Represent the inclusive start index of the Range.</summary>
|
||||
</member>
|
||||
<member name="P:System.Range.End">
|
||||
<summary>Represent the exclusive end index of the Range.</summary>
|
||||
</member>
|
||||
<member name="M:System.Range.#ctor(System.Index,System.Index)">
|
||||
<summary>Construct a Range object using the start and end indexes.</summary>
|
||||
<param name="start">Represent the inclusive start index of the range.</param>
|
||||
<param name="end">Represent the exclusive end index of the range.</param>
|
||||
</member>
|
||||
<member name="M:System.Range.Equals(System.Object)">
|
||||
<summary>Indicates whether the current Range object is equal to another object of the same type.</summary>
|
||||
<param name="value">An object to compare with this object</param>
|
||||
</member>
|
||||
<member name="M:System.Range.Equals(System.Range)">
|
||||
<summary>Indicates whether the current Range object is equal to another Range object.</summary>
|
||||
<param name="other">An object to compare with this object</param>
|
||||
</member>
|
||||
<member name="M:System.Range.GetHashCode">
|
||||
<summary>Returns the hash code for this instance.</summary>
|
||||
</member>
|
||||
<member name="M:System.Range.ToString">
|
||||
<summary>Converts the value of the current Range object to its equivalent string representation.</summary>
|
||||
</member>
|
||||
<member name="M:System.Range.StartAt(System.Index)">
|
||||
<summary>Create a Range object starting from start index to the end of the collection.</summary>
|
||||
</member>
|
||||
<member name="M:System.Range.EndAt(System.Index)">
|
||||
<summary>Create a Range object starting from first element in the collection to the end Index.</summary>
|
||||
</member>
|
||||
<member name="P:System.Range.All">
|
||||
<summary>Create a Range object starting from first element to the end.</summary>
|
||||
</member>
|
||||
<member name="M:System.Range.GetOffsetAndLength(System.Int32)">
|
||||
<summary>Calculate the start offset and length of range object using a collection length.</summary>
|
||||
<param name="length">The length of the collection that the range will be used with. length has to be a positive value.</param>
|
||||
<remarks>
|
||||
For performance reason, we don't validate the input length parameter against negative values.
|
||||
It is expected Range will be used with collections which always have non negative length/count.
|
||||
We validate the range is inside the length scope though.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute">
|
||||
<summary>
|
||||
Indicates the type of the async method builder that should be used by a language compiler to
|
||||
build the attributed async method or to build the attributed type when used as the return type
|
||||
of an async method.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.#ctor(System.Type)">
|
||||
<summary>Initializes the <see cref="T:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute"/>.</summary>
|
||||
<param name="builderType">The <see cref="T:System.Type"/> of the associated builder.</param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.AsyncMethodBuilderAttribute.BuilderType">
|
||||
<summary>Gets the <see cref="T:System.Type"/> of the associated builder.</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute">
|
||||
<summary>
|
||||
An attribute that allows parameters to receive the expression of other parameters.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute"/> class.
|
||||
</summary>
|
||||
<param name="parameterName">The condition parameter value.</param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.ParameterName">
|
||||
<summary>
|
||||
Gets the parameter name the expression is retrieved from.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.CollectionBuilderAttribute.#ctor(System.Type,System.String)">
|
||||
<summary>
|
||||
Initialize the attribute to refer to the <paramref name="methodName"/> method on the <paramref name="builderType"/> type.
|
||||
</summary>
|
||||
<param name="builderType">The type of the builder to use to construct the collection.</param>
|
||||
<param name="methodName">The name of the method on the builder to use to construct the collection.</param>
|
||||
<remarks>
|
||||
<paramref name="methodName"/> must refer to a static method that accepts a single parameter of
|
||||
type <see cref="!:ReadOnlySpan<T>"/> and returns an instance of the collection being built containing
|
||||
a copy of the data from that span. In future releases of .NET, additional patterns may be supported.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.CollectionBuilderAttribute.BuilderType">
|
||||
<summary>
|
||||
Gets the type of the builder to use to construct the collection.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.CollectionBuilderAttribute.MethodName">
|
||||
<summary>
|
||||
Gets the name of the method on the builder to use to construct the collection.
|
||||
</summary>
|
||||
<remarks>
|
||||
This should match the metadata name of the target method.
|
||||
For example, this might be ".ctor" if targeting the type's constructor.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute">
|
||||
<summary>
|
||||
Indicates that compiler support for a particular feature is required for the location where this attribute is applied.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Creates a new instance of the <see cref="T:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute"/> type.
|
||||
</summary>
|
||||
<param name="featureName">The name of the feature to indicate.</param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.FeatureName">
|
||||
<summary>
|
||||
The name of the compiler feature.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.IsOptional">
|
||||
<summary>
|
||||
If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand <see cref="P:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.FeatureName"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.RefStructs">
|
||||
<summary>
|
||||
The <see cref="P:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.FeatureName"/> used for the ref structs C# feature.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.RequiredMembers">
|
||||
<summary>
|
||||
The <see cref="P:System.Runtime.CompilerServices.CompilerFeatureRequiredAttribute.FeatureName"/> used for the required members C# feature.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute">
|
||||
<summary>
|
||||
Indicates which arguments to a method involving an interpolated string handler should be passed to that handler.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute"/> class.
|
||||
</summary>
|
||||
<param name="argument">The name of the argument that should be passed to the handler.</param>
|
||||
<remarks><see langword="null"/> may be used as the name of the receiver in an instance method.</remarks>
|
||||
</member>
|
||||
<member name="M:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.#ctor(System.String[])">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute"/> class.
|
||||
</summary>
|
||||
<param name="arguments">The names of the arguments that should be passed to the handler.</param>
|
||||
<remarks><see langword="null"/> may be used as the name of the receiver in an instance method.</remarks>
|
||||
</member>
|
||||
<member name="P:System.Runtime.CompilerServices.InterpolatedStringHandlerArgumentAttribute.Arguments">
|
||||
<summary>
|
||||
Gets the names of the arguments that should be passed to the handler.
|
||||
</summary>
|
||||
<remarks><see langword="null"/> may be used as the name of the receiver in an instance method.</remarks>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.InterpolatedStringHandlerAttribute">
|
||||
<summary>
|
||||
Indicates the attributed type is to be used as an interpolated string handler.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.IsExternalInit">
|
||||
<summary>
|
||||
Reserved to be used by the compiler for tracking metadata.
|
||||
This class should not be used by developers in source code.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.ModuleInitializerAttribute">
|
||||
<summary>
|
||||
Used to indicate to the compiler that a method should be called
|
||||
in its containing module's initializer.
|
||||
</summary>
|
||||
<remarks>
|
||||
When one or more valid methods
|
||||
with this attribute are found in a compilation, the compiler will
|
||||
emit a module initializer which calls each of the attributed methods.
|
||||
|
||||
Certain requirements are imposed on any method targeted with this attribute:
|
||||
- The method must be `static`.
|
||||
- The method must be an ordinary member method, as opposed to a property accessor, constructor, local function, etc.
|
||||
- The method must be parameterless.
|
||||
- The method must return `void`.
|
||||
- The method must not be generic or be contained in a generic type.
|
||||
- The method's effective accessibility must be `internal` or `public`.
|
||||
|
||||
The specification for module initializers in the .NET runtime can be found here:
|
||||
https://github.com/dotnet/runtime/blob/main/docs/design/specs/Ecma-335-Augments.md#module-initializer
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.RequiredMemberAttribute">
|
||||
<summary>
|
||||
Specifies that a type has required members or that a member is required.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.RequiresLocationAttribute">
|
||||
<summary>
|
||||
Reserved for use by a compiler for tracking metadata.
|
||||
This attribute should not be used by developers in source code.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:System.Runtime.CompilerServices.SkipLocalsInitAttribute">
|
||||
<summary>
|
||||
Used to indicate to the compiler that the <c>.locals init</c> flag should not be set in method headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.#ctor">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute"/> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.#ctor(System.String)">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute"/> class with the specified message.
|
||||
</summary>
|
||||
<param name="message">An optional message associated with this attribute instance.</param>
|
||||
</member>
|
||||
<member name="P:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.Message">
|
||||
<summary>
|
||||
Returns the optional message associated with this attribute instance.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:System.Runtime.Versioning.RequiresPreviewFeaturesAttribute.Url">
|
||||
<summary>
|
||||
Returns the optional URL associated with this attribute instance.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4b76db0b2ded8f74596f9c4d51979c6d
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,150 @@
|
|||
RBush
|
||||
=====
|
||||
|
||||
RBush is a high-performance .NET library for 2D **spatial indexing** of points and rectangles.
|
||||
It's based on an optimized **R-tree** data structure with **bulk insertion** support.
|
||||
|
||||
*Spatial index* is a special data structure for points and rectangles
|
||||
that allows you to perform queries like "all items within this bounding box" very efficiently
|
||||
(e.g. hundreds of times faster than looping over all items).
|
||||
It's most commonly used in maps and data visualizations.
|
||||
|
||||
This code has been copied over from the Javascript [RBush](https://github.com/mourner/rbush) library.
|
||||
|
||||
[](https://github.com/viceroypenguin/RBush/actions)
|
||||
[](license.txt)
|
||||
|
||||
## Install
|
||||
|
||||
Install with Nuget (`Install-Package RBush`).
|
||||
|
||||
## Usage
|
||||
|
||||
### Creating a Tree
|
||||
|
||||
First, define the data item class to implement `ISpatialData`. Then the class can be used as such:
|
||||
|
||||
```csharp
|
||||
class Point : ISpatialData
|
||||
{
|
||||
public Point(Envelope envelope) =>
|
||||
_envelope = envelope;
|
||||
private readonly Envelope _envelope;
|
||||
public public ref readonly Envelope Envelope => _envelope;
|
||||
}
|
||||
|
||||
var tree = new RBush<Point>()
|
||||
```
|
||||
|
||||
An optional argument (`maxEntries`) to the constructor defines the maximum number
|
||||
of entries in a tree node. `9` (used by default) is a reasonable choice for most
|
||||
applications. Higher value means faster insertion and slower search, and vice versa.
|
||||
|
||||
```csharp
|
||||
var tree = new RBush<Point>(maxEntries: 16)
|
||||
```
|
||||
|
||||
### Adding Data
|
||||
|
||||
Insert an item:
|
||||
|
||||
```csharp
|
||||
var item = new Point(
|
||||
new Envelope(
|
||||
MinX: 0,
|
||||
MinY: 0,
|
||||
MaxX: 0,
|
||||
MaxY: 0));
|
||||
tree.Insert(item);
|
||||
```
|
||||
|
||||
### Bulk-Inserting Data
|
||||
|
||||
Bulk-insert the given data into the tree:
|
||||
|
||||
```csharp
|
||||
var points = new List<Point>();
|
||||
tree.BulkLoad(points);
|
||||
```
|
||||
|
||||
Bulk insertion is usually ~2-3 times faster than inserting items one by one.
|
||||
After bulk loading (bulk insertion into an empty tree),
|
||||
subsequent query performance is also ~20-30% better.
|
||||
|
||||
Note that when you do bulk insertion into an existing tree,
|
||||
it bulk-loads the given data into a separate tree
|
||||
and inserts the smaller tree into the larger tree.
|
||||
This means that bulk insertion works very well for clustered data
|
||||
(where items in one update are close to each other),
|
||||
but makes query performance worse if the data is scattered.
|
||||
|
||||
### Search
|
||||
|
||||
```csharp
|
||||
var result = tree.Search(
|
||||
new Envelope
|
||||
(
|
||||
minX: 40,
|
||||
minY: 20,
|
||||
maxX: 80,
|
||||
maxY: 70
|
||||
);
|
||||
```
|
||||
|
||||
Returns an `IEnumerable<T>` of data items (points or rectangles) that the given bounding box intersects.
|
||||
|
||||
```csharp
|
||||
var allItems = tree.Search();
|
||||
```
|
||||
|
||||
Returns all items of the tree.
|
||||
|
||||
### Removing Data
|
||||
|
||||
#### Remove a previously inserted item:
|
||||
|
||||
```csharp
|
||||
tree.Delete(item);
|
||||
```
|
||||
|
||||
Unless provided an `IComparer<T>`, RBush uses `EqualityComparer<T>.Default`
|
||||
to select the item. If the item being passed in is not the same reference
|
||||
value, ensure that the class supports `EqualityComparer<T>.Default`
|
||||
equality testing.
|
||||
|
||||
#### Remove all items:
|
||||
|
||||
```csharp
|
||||
tree.Clear();
|
||||
```
|
||||
|
||||
## Credit
|
||||
|
||||
This code was adapted from a Javascript library called [RBush](https://github.com/mourner/rbush). The only
|
||||
changes made were to adapt coding styles and preferences.
|
||||
|
||||
## Algorithms Used
|
||||
|
||||
* single insertion: non-recursive R-tree insertion with overlap minimizing split routine from R\*-tree (split is very effective in JS, while other R\*-tree modifications like reinsertion on overflow and overlap minimizing subtree search are too slow and not worth it)
|
||||
* single deletion: non-recursive R-tree deletion using depth-first tree traversal with free-at-empty strategy (entries in underflowed nodes are not reinserted, instead underflowed nodes are kept in the tree and deleted only when empty, which is a good compromise of query vs removal performance)
|
||||
* bulk loading: OMT algorithm (Overlap Minimizing Top-down Bulk Loading) combined with Floyd–Rivest selection algorithm
|
||||
* bulk insertion: STLT algorithm (Small-Tree-Large-Tree)
|
||||
* search: standard non-recursive R-tree search
|
||||
|
||||
## Papers
|
||||
|
||||
* [R-trees: a Dynamic Index Structure For Spatial Searching](http://www-db.deis.unibo.it/courses/SI-LS/papers/Gut84.pdf)
|
||||
* [The R*-tree: An Efficient and Robust Access Method for Points and Rectangles+](http://dbs.mathematik.uni-marburg.de/publications/myPapers/1990/BKSS90.pdf)
|
||||
* [OMT: Overlap Minimizing Top-down Bulk Loading Algorithm for R-tree](http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-74/files/FORUM_18.pdf)
|
||||
* [Bulk Insertions into R-Trees Using the Small-Tree-Large-Tree Approach](http://www.cs.arizona.edu/~bkmoon/papers/dke06-bulk.pdf)
|
||||
* [R-Trees: Theory and Applications (book)](http://www.apress.com/9781852339777)
|
||||
|
||||
## Development
|
||||
|
||||
Clone the repository and open `RBush.sln` in Visual Studio.
|
||||
|
||||
## Compatibility
|
||||
|
||||
RBush should run on any .NET system that supports .NET Standard 1.2 (.NET Framework 4.5.1 or later; .NET Core 1.0 or later).
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 51f58fe6849016b439cf6b61451fb0d3
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 355b5fd9af0599c49b4f13d91e358127
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>SixLabors.Fonts</id>
|
||||
<version>1.0.0</version>
|
||||
<authors>Six Labors and contributors</authors>
|
||||
<requireLicenseAcceptance>true</requireLicenseAcceptance>
|
||||
<license type="expression">Apache-2.0</license>
|
||||
<licenseUrl>https://licenses.nuget.org/Apache-2.0</licenseUrl>
|
||||
<icon>sixlabors.fonts.128.png</icon>
|
||||
<projectUrl>https://github.com/SixLabors/Fonts</projectUrl>
|
||||
<description>A cross-platform library for loading and laying out fonts for processing and measuring; written in C#</description>
|
||||
<copyright>Copyright © Six Labors</copyright>
|
||||
<tags>font truetype opentype woff woff2</tags>
|
||||
<repository type="git" url="https://github.com/SixLabors/Fonts" commit="32bef42997adb10268369ca149777f00e4241ce9" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETCoreApp3.1" />
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="System.Buffers" version="4.5.1" exclude="Build,Analyzers" />
|
||||
<dependency id="System.Memory" version="4.5.4" exclude="Build,Analyzers" />
|
||||
<dependency id="System.Numerics.Vectors" version="4.5.0" exclude="Build,Analyzers" />
|
||||
<dependency id="System.Runtime.CompilerServices.Unsafe" version="4.7.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.1">
|
||||
<dependency id="System.Runtime.CompilerServices.Unsafe" version="4.7.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
</dependencies>
|
||||
</metadata>
|
||||
</package>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a5c20281fe45f3b4082c411c402ee328
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b682e70f1ae8964468334a41e1af0053
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ac5c37ac8911a6649bab0cc219a5369f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.dll
vendored
Normal file
BIN
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.dll
vendored
Normal file
Binary file not shown.
23
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.dll.meta
vendored
Normal file
23
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.dll.meta
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 68c8fe8eb1e0dab488a842123ee978bb
|
||||
labels:
|
||||
- NuGetForUnity
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
11311
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.xml
vendored
Normal file
11311
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.xml.meta
vendored
Normal file
7
Assets/Packages/SixLabors.Fonts.1.0.0/lib/netstandard2.1/SixLabors.Fonts.xml.meta
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a48f70af37adb604b98c20c54c7128a0
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 4.7 KiB |
|
@ -0,0 +1,136 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d86bfabd2afc38444ba196475a5ab68b
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 471046327715530374
|
||||
second: sixlabors.fonts.128_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: sixlabors.fonts.128_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 128
|
||||
height: 128
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 6868c3ca32e798600800000000000000
|
||||
internalID: 471046327715530374
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8c1839d7ee4622d439393176894d0d61
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue