DioDocs for Excelを使用すると、以下の機能をjson文字列からインポートやjson文字列にエクスポートすることが可能です。
次のサンプルコードは、IShape.FromJsonメソッドを使用してjson文字列から図形、チャートや画像を更新する方法を示します。
C# |
コードのコピー
|
---|---|
var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["A1:D6"].Value = new object[,] { {null, "S1", "S2", "S3"}, {"Item1", 10, 25, 25}, {"Item2", -51, -36, 27}, {"Item3", 52, -85, -30}, {"Item4", 22, 65, 65}, {"Item5", 23, 69, 69} }; var shape = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 10, 10, 100, 100); //jsonから図形を更新します shape.FromJson("{\"isLocked\":true,\"canPrint\":true,\"dynamicMove\":true,\"dynamicSize\":true,\"allowResize\":true,\"allowRotate\":true,\"allowMove\":true,\"showHandle\":true,\"alt\":\"\",\"formulaItems\":{\"line\":{\"color\":\"rgb(31,79,122)\",\"lineStyle\":0,\"width\":1,\"capType\":2,\"joinType\":0,\"transparency\":0}},\"shapeData\":{\"anchorType\":0,\"startPoint\":{\"row\":1,\"col\":0,\"rowOffset\":11,\"colOffset\":38},\"endPoint\":{\"row\":8,\"col\":4,\"rowOffset\":2,\"colOffset\":27},\"editAs\":0,\"sp\":{\"shapeType\":5,\"nvSpPr\":{\"cNvPr\":{\"id\":2,\"name\":\"rightArrowCallout 1\",\"hidden\":false,\"title\":\"\"},\"cNvSpPr\":{\"txBox\":false}},\"spPr\":{\"xfrm\":{\"flipH\":false,\"flipV\":false,\"rot\":0,\"off\":{\"x\":38,\"y\":31},\"ext\":{\"cx\":237,\"cy\":131}},\"prstGeom\":{\"prst\":56,\"avLst\":{}},\"extLst\":{\"ext\":[]},\"solidFill\":{\"schemeClr\":{\"val\":9,\"lumMod\":[60000],\"lumOff\":[40000]}},\"ln\":{\"solidFill\":{\"srgbClr\":{\"val\":[31,79,122]}},\"w\":1,\"prstDash\":0,\"cap\":2,\"round\":true},\"effectLst\":{}},\"style\":{\"fillRef\":{\"ColorProp\":{\"colorFillType\":0,\"schemeClr\":{\"val\":-4142}},\"idx\":1},\"lnRef\":{\"ColorProp\":{\"colorFillType\":0,\"schemeClr\":{\"val\":-4142}},\"idx\":2},\"fontRef\":{\"TextCharacterProperties\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":14.666666666666666,\"solidFill\":{\"srgbClr\":{\"val\":[255,255,255]}}},\"idx\":1},\"effectRef\":{\"idx\":0,\"ColorProp\":{\"colorFillType\":0,\"schemeClr\":{\"val\":4}}}},\"txBody\":{\"p\":[{\"elements\":[{\"elementType\":0,\"t\":\"\",\"rPr\":{\"latin\":{\"typeface\":\"Calibri\"},\"sz\":14.6667,\"b\":false,\"i\":false,\"solidFill\":{\"srgbClr\":{\"val\":[255,255,255]}}}}],\"pPr\":{\"defRPr\":{\"latin\":{\"typeface\":\"Calibri\"},\"sz\":14.6667,\"b\":false,\"i\":false,\"solidFill\":{\"srgbClr\":{\"val\":[255,255,255]}}},\"algn\":0},\"endParaRPr\":{}}],\"bodyPr\":{\"anchor\":0,\"horzOverflow\":1,\"vertOverflow\":2},\"lstStyle\":{}}}},\"name\":\"rightArrowCallout 1\",\"shapeType\":5}"); var chart = worksheet.Shapes.AddChart(ChartType.Line, 10, 10, 300, 300); //jsonからチャートを更新します chart.FromJson("{\"name\":\"Chart 1\",\"x\":145,\"y\":133,\"width\":480,\"height\":300,\"startRow\":6,\"startRowOffset\":13,\"startColumn\":2,\"startColumnOffset\":21,\"endRow\":21,\"endRowOffset\":13,\"endColumn\":10,\"endColumnOffset\":5,\"isSelected\":true,\"typeName\":\"2\",\"chartSpace\":{\"typeName\":\"chartSpace\",\"roundedCorners\":false,\"chart\":{\"title\":{\"txPr\":{\"p\":[{\"elements\":[{\"elementType\":0,\"t\":\"\",\"rPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":18.67,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}}],\"pPr\":{\"defRPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":18.67,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}},\"endParaRPr\":{}}],\"bodyPr\":{},\"lstStyle\":{}},\"overlay\":false,\"spPr\":{\"noFill\":true,\"ln\":{\"noFill\":true},\"effectLst\":{}}},\"autoTitleDeleted\":false,\"plotArea\":{\"axes\":[{\"axisType\":0,\"axId\":31410946,\"delete\":false,\"majorTickMark\":2,\"minorTickMark\":2,\"tickLblPos\":2,\"axPos\":0,\"scaling\":{\"orientation\":1},\"spPr\":{\"ln\":{\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[15000],\"lumOff\":[85000]}}}},\"numFmt\":{\"formatCode\":\"General\"},\"txPr\":{\"p\":[{\"elements\":[{\"elementType\":0,\"t\":\"\",\"rPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":12,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}}],\"pPr\":{\"defRPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":12,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}},\"endParaRPr\":{}}]},\"auto\":true,\"lblOffset\":0,\"tickMarkSkip\":1,\"noMultiLvlLbl\":true,\"AxisGroup\":0,\"AxisType\":0,\"crosses\":1,\"crossAx\":38384719},{\"axisType\":3,\"axId\":38384719,\"delete\":false,\"majorTickMark\":2,\"minorTickMark\":2,\"tickLblPos\":2,\"axPos\":1,\"scaling\":{\"orientation\":1},\"spPr\":{\"ln\":{\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[15000],\"lumOff\":[85000]}}}},\"numFmt\":{\"formatCode\":\"General\"},\"txPr\":{\"p\":[{\"elements\":[{\"elementType\":0,\"t\":\"\",\"rPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":12,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}}],\"pPr\":{\"defRPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":12,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}},\"endParaRPr\":{}}]},\"majorGridlines\":{\"spPr\":{\"ln\":{\"solidFill\":{\"srgbClr\":{\"val\":[217,217,217]}},\"w\":1},\"effectLst\":{}}},\"AxisGroup\":0,\"AxisType\":1,\"crosses\":1,\"crossBetween\":0,\"crossAx\":31410946}],\"chartGroups\":[{\"chartType\":6,\"ser\":[{\"seriesType\":0,\"idx\":0,\"order\":0,\"tx\":{\"strRef\":{\"f\":\"Sheet1!$A$2\"}},\"cat\":{\"strRef\":{\"f\":\"Sheet1!$B$1:$D$1\"}},\"val\":{\"numRef\":{\"f\":\"Sheet1!$B$2:$D$2\",\"numCache\":{\"formatCode\":\"General\"}}},\"shape\":2,\"invertIfNegative\":false},{\"seriesType\":0,\"idx\":1,\"order\":1,\"tx\":{\"strRef\":{\"f\":\"Sheet1!$A$3\"}},\"cat\":{\"strRef\":{\"f\":\"Sheet1!$B$1:$D$1\"}},\"val\":{\"numRef\":{\"f\":\"Sheet1!$B$3:$D$3\",\"numCache\":{\"formatCode\":\"General\"}}},\"shape\":2,\"invertIfNegative\":false},{\"seriesType\":0,\"idx\":2,\"order\":2,\"tx\":{\"strRef\":{\"f\":\"Sheet1!$A$4\"}},\"cat\":{\"strRef\":{\"f\":\"Sheet1!$B$1:$D$1\"}},\"val\":{\"numRef\":{\"f\":\"Sheet1!$B$4:$D$4\",\"numCache\":{\"formatCode\":\"General\"}}},\"shape\":2,\"invertIfNegative\":false},{\"seriesType\":0,\"idx\":3,\"order\":3,\"tx\":{\"strRef\":{\"f\":\"Sheet1!$A$5\"}},\"cat\":{\"strRef\":{\"f\":\"Sheet1!$B$1:$D$1\"}},\"val\":{\"numRef\":{\"f\":\"Sheet1!$B$5:$D$5\",\"numCache\":{\"formatCode\":\"General\"}}},\"shape\":2,\"invertIfNegative\":false},{\"seriesType\":0,\"idx\":4,\"order\":4,\"tx\":{\"strRef\":{\"f\":\"Sheet1!$A$6\"}},\"cat\":{\"strRef\":{\"f\":\"Sheet1!$B$1:$D$1\"}},\"val\":{\"numRef\":{\"f\":\"Sheet1!$B$6:$D$6\",\"numCache\":{\"formatCode\":\"General\"}}},\"shape\":2,\"invertIfNegative\":false}],\"axId\":[31410946,38384719],\"barDir\":1,\"grouping\":1,\"gapWidth\":150,\"varyColors\":false,\"overlap\":-27}],\"spPr\":{\"noFill\":true,\"ln\":{\"noFill\":true}}},\"legend\":{\"legendPos\":4,\"spPr\":{\"noFill\":true,\"ln\":{\"noFill\":true}},\"txPr\":{\"p\":[{\"elements\":[{\"elementType\":0,\"t\":\"\",\"rPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":12,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}}],\"pPr\":{\"defRPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"sz\":12,\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}},\"endParaRPr\":{}}]}},\"plotVisOnly\":true,\"dispBlanksAs\":1,\"dispNaAsBlank\":false},\"spPr\":{\"solidFill\":{\"schemeClr\":{\"val\":0}},\"ln\":{\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[15000],\"lumOff\":[85000]}},\"w\":1}},\"txPr\":{\"p\":[{\"elements\":[{\"elementType\":0,\"t\":\"\",\"rPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}}],\"pPr\":{\"defRPr\":{\"latin\":{\"typeface\":\"+mn-lt\"},\"b\":false,\"solidFill\":{\"schemeClr\":{\"val\":1,\"lumMod\":[65000],\"lumOff\":[35000]}}}},\"endParaRPr\":{}}]}},\"useAnimation\":false}"); var picture = worksheet.Shapes.AddPicture(null, 0, 0, 100, 100); //jsonから画像を更新します picture.FromJson("{\"name\":\"Picture1\",\"x\":350,\"y\":10,\"width\":478,\"height\":113,\"startRow\":0,\"startRowOffset\":10,\"startColumn\":5,\"startColumnOffset\":40,\"endRow\":6,\"endRowOffset\":3,\"endColumn\":13,\"endColumnOffset\":22,\"isSelected\":true,\"typeName\":\"1\",\"src\":\"data:image/png;base64,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\",\"backColor\":\"#FFFFFF\",\"borderRadius\":3,\"borderStyle\":\"solid\",\"borderColor\":\"#000000\",\"originalWidth\":1280,\"originalHeight\":194}"); workbook.Save("ShapeChartPicturefromjson.xlsx"); |
注意点:
次のサンプルコードは、IRange.FromJsonメソッドを使用してjson文字列から範囲を更新する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["B2:D4"].FromJson("{\"0\":{\"0\":{\"value\":1},\"1\":{\"value\":2}},\"1\":{\"0\":{\"value\":\"aaa\",\"style\":{\"backColor\":\"rgb(173,216,230)\",\"font\":\"normal normal 11pt Calibri,sans-serif\",\"foreColor\":\"Text 1\",\"themeFont\":\"Body\",\"borderLeft\":{\"color\":null,\"style\":0},\"borderTop\":{\"color\":null,\"style\":0},\"borderRight\":{\"color\":null,\"style\":0},\"borderBottom\":{\"color\":null,\"style\":0},\"borderHorizontal\":{\"color\":null,\"style\":0},\"borderVertical\":{\"color\":null,\"style\":0},\"locked\":true,\"hAlign\":3,\"vAlign\":2,\"textIndent\":0,\"wordWrap\":false,\"shrinkToFit\":false,\"formatter\":\"General\",\"quotePrefix\":false}},\"1\":{\"value\":\"bbb\",\"style\":{\"backColor\":\"rgb(173,216,230)\",\"font\":\"normal normal 11pt Calibri,sans-serif\",\"foreColor\":\"Text 1\",\"themeFont\":\"Body\",\"borderLeft\":{\"color\":null,\"style\":0},\"borderTop\":{\"color\":null,\"style\":0},\"borderRight\":{\"color\":null,\"style\":0},\"borderBottom\":{\"color\":null,\"style\":0},\"borderHorizontal\":{\"color\":null,\"style\":0},\"borderVertical\":{\"color\":null,\"style\":0},\"locked\":true,\"hAlign\":3,\"vAlign\":2,\"textIndent\":0,\"wordWrap\":false,\"shrinkToFit\":false,\"formatter\":\"General\",\"quotePrefix\":false}},\"2\":{\"style\":{\"backColor\":\"rgb(173,216,230)\",\"font\":\"normal normal 11pt Calibri,sans-serif\",\"foreColor\":\"Text 1\",\"themeFont\":\"Body\",\"borderLeft\":{\"color\":null,\"style\":0},\"borderTop\":{\"color\":null,\"style\":0},\"borderRight\":{\"color\":null,\"style\":0},\"borderBottom\":{\"color\":null,\"style\":0},\"borderHorizontal\":{\"color\":null,\"style\":0},\"borderVertical\":{\"color\":null,\"style\":0},\"locked\":true,\"hAlign\":3,\"vAlign\":2,\"textIndent\":0,\"wordWrap\":false,\"shrinkToFit\":false,\"formatter\":\"General\",\"quotePrefix\":false}}},\"2\":{\"0\":{\"style\":{\"backColor\":\"rgb(173,216,230)\",\"font\":\"normal normal 11pt Calibri,sans-serif\",\"foreColor\":\"Text 1\",\"themeFont\":\"Body\",\"borderLeft\":{\"color\":null,\"style\":0},\"borderTop\":{\"color\":null,\"style\":0},\"borderRight\":{\"color\":null,\"style\":0},\"borderBottom\":{\"color\":null,\"style\":0},\"borderHorizontal\":{\"color\":null,\"style\":0},\"borderVertical\":{\"color\":null,\"style\":0},\"locked\":true,\"hAlign\":3,\"vAlign\":2,\"textIndent\":0,\"wordWrap\":false,\"shrinkToFit\":false,\"formatter\":\"General\",\"quotePrefix\":false}},\"1\":{\"style\":{\"backColor\":\"rgb(173,216,230)\",\"font\":\"normal normal 11pt Calibri,sans-serif\",\"foreColor\":\"Text 1\",\"themeFont\":\"Body\",\"borderLeft\":{\"color\":null,\"style\":0},\"borderTop\":{\"color\":null,\"style\":0},\"borderRight\":{\"color\":null,\"style\":0},\"borderBottom\":{\"color\":null,\"style\":0},\"borderHorizontal\":{\"color\":null,\"style\":0},\"borderVertical\":{\"color\":null,\"style\":0},\"locked\":true,\"hAlign\":3,\"vAlign\":2,\"textIndent\":0,\"wordWrap\":false,\"shrinkToFit\":false,\"formatter\":\"General\",\"quotePrefix\":false}},\"2\":{\"style\":{\"backColor\":\"rgb(173,216,230)\",\"font\":\"normal normal 11pt Calibri,sans-serif\",\"foreColor\":\"Text 1\",\"themeFont\":\"Body\",\"borderLeft\":{\"color\":null,\"style\":0},\"borderTop\":{\"color\":null,\"style\":0},\"borderRight\":{\"color\":null,\"style\":0},\"borderBottom\":{\"color\":null,\"style\":0},\"borderHorizontal\":{\"color\":null,\"style\":0},\"borderVertical\":{\"color\":null,\"style\":0},\"locked\":true,\"hAlign\":3,\"vAlign\":2,\"textIndent\":0,\"wordWrap\":false,\"shrinkToFit\":false,\"formatter\":\"General\",\"quotePrefix\":false}}}}"); //ワークブックをxlsxファイルに保存します workbook.Save("rangefromjson.xlsx"); |
注意点:
次のサンプルコードは、ISlicer.FromJsonメソッドを使用してjson文字列からスライサーを更新する方法を示します。
C# |
コードのコピー
|
---|---|
var workbook = new GrapeCity.Documents.Excel.Workbook(); object[,] sourceData = new object[,] { { "Order ID", "Product", "Category", "Amount", "Date", "Country" }, { 1, "Carrots", "Vegetables", 4270, new DateTime(2018, 1, 6), "United States" }, { 2, "Broccoli", "Vegetables", 8239, new DateTime(2018, 1, 7), "United Kingdom" }, { 3, "Banana", "Fruit", 617, new DateTime(2018, 1, 8), "United States" }, { 4, "Banana", "Fruit", 8384, new DateTime(2018, 1, 10), "Canada" }, { 5, "Beans", "Vegetables", 2626, new DateTime(2018, 1, 10), "Germany" }, { 6, "Orange", "Fruit", 3610, new DateTime(2018, 1, 11), "United States" }, { 7, "Broccoli", "Vegetables", 9062, new DateTime(2018, 1, 11), "Australia" }, { 8, "Banana", "Fruit", 6906, new DateTime(2018, 1, 16), "New Zealand" }, { 9, "Apple", "Fruit", 2417, new DateTime(2018, 1, 16), "France" }, { 10, "Apple", "Fruit", 7431, new DateTime(2018, 1, 16), "Canada" }, { 11, "Banana", "Fruit", 8250, new DateTime(2018, 1, 16), "Germany" }, { 12, "Broccoli", "Vegetables", 7012, new DateTime(2018, 1, 18), "United States" }, { 13, "Carrots", "Vegetables", 1903, new DateTime(2018, 1, 20), "Germany" }, { 14, "Broccoli", "Vegetables", 2824, new DateTime(2018, 1, 22), "Canada" }, { 15, "Apple", "Fruit", 6946, new DateTime(2018, 1, 24), "France" }, }; IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["A1:F16"].Value = sourceData; ITable table = worksheet.Tables.Add(worksheet.Range["A1:F16"], true); ISlicerCache cache = workbook.SlicerCaches.Add(table, "Category"); ISlicer slicer1 = cache.Slicers.Add(worksheet, "cate1", "Category", 200, 200, 100, 200); //jsonからスライサーを更新します slicer1.FromJson("{\"name\":\"cate2\",\"x\":400,\"y\":100,\"width\":133.33333333333334,\"height\":266.66666666666663,\"dynamicMove\":false,\"dynamicSize\":false,\"sourceName\":\"Product\",\"nameInFormula\":\"Slicer_Category\",\"captionName\":\"Category\",\"columnCount\":1,\"itemHeight\":23.666666666666668,\"showHeader\":true,\"sortState\":2,\"style\":{\"name\":\"SlicerStyleLight2\"},\"tableName\":\"Table1\",\"columnName\":\"Category\"}"); //xlsxファイルに保存します workbook.Save("slicerfromjson.xlsx"); |
注意点:
次のサンプルコードは、IComment.FromJsonメソッドを使用してjson文字列からコメントを更新する方法を示します。
C# |
コードのコピー
|
---|---|
var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; IComment comment = worksheet.Range["A1"].AddComment("Comment1"); //jsonからコメントを更新します comment.FromJson("{\"text\":\"Comment Test\",\"location\":{\"x\":595.666666666667,\"y\":259.666666666667},\"width\":100,\"height\":80,\"fontFamily\":\"Tahoma\",\"fontWeight\":\"bold\",\"foreColor\":\"rgb(165,165,165)\",\"backColor\":\"rgb(255,255,225)\",\"dynamicMove\":false,\"dynamicSize\":false,\"borderWidth\":1.33333333333333,\"borderStyle\":\"solid\",\"borderColor\":\"rgb(0,0,0)\",\"zIndex\":0,\"rowIndex\":0,\"colIndex\":0}"); //xlsxファイルに保存します workbook.Save("commentfromjson.xlsx"); |
次のサンプルコードは、IName.FromJsonメソッドを使用してjson文字列から定義名を生成する方法を示します。
C# |
コードのコピー
|
---|---|
var workbook = new Workbook(); var worksheet = workbook.ActiveSheet; //jsonからINamesを生成します workbook.Names.FromJson("[{\"name\":\"Test\",\"formula\":\"100\",\"row\":0,\"col\":0},{\"name\":\"Test2\",\"formula\":\"200\",\"row\":0,\"col\":0}]"); //IName IName name = worksheet.Names.Add("temp", "test"); name.FromJson("{\"name\":\"Test3\",\"formula\":\"Sheet1!$H$8\",\"row\":0,\"col\":0}"); //xlsxファイルに保存します workbook.Save("definednamesfromjson.xlsx"); |
次のサンプルコードは、IPageSetup.FromJsonメソッドを使用してjson文字列からページ設定を更新する方法を示します。
C# |
コードのコピー
|
---|---|
var workbook = new Workbook(); var sheet = workbook.Worksheets[0]; //jsonからpagesetupを更新します sheet.PageSetup.FromJson("{\"bestFitRows\":true,\"bestFitColumns\":true,\"showBorder\":false,\"showColumnHeader\":33,\"showRowHeader\":17,\"headerLeft\":23,\"headerCenter\":14,\"headerRight\":66,\"footerLeft\":22,\"footerCenter\":11,\"footerRight\":12,\"headerLeftImage\":51,\"headerCenterImage\":23,\"headerRightImage\":12,\"footerLeftImage\":63,\"footerCenterImage\":21,\"footerRightImage\":12,\"margin\":{\"top\":80,\"bottom\":80,\"left\":30,\"right\":30,\"header\":20,\"footer\":40},\"paperSize\":{\"width\":850,\"height\":1100,\"kind\":1}}"); //xlsxファイルに保存します workbook.Save("pagesetupfromjson.xlsx"); |
次のサンプルコードは、IProtectionSettings.FromJsonメソッドを使用してjson文字列からワークシートの保護設定 を更新する方法を示します。
C# |
コードのコピー
|
---|---|
var workbook = new Workbook(); var sheet = workbook.Worksheets[0]; //jsonから保護設定を更新します sheet.ProtectionSettings.FromJson("{\"allowSelectLockedCells\":true,\"allowSelectUnlockedCells\":true,\"allowSort\":true,\"allowFilter\":true,\"allowResizeRows\":true,\"allowResizeColumns\":true,\"allowEditObjects\":true,\"allowDragInsertRows\":true,\"allowDragInsertColumns\":true,\"allowInsertRows\":true,\"allowInsertColumns\":true,\"allowDeleteRows\":true,\"allowDeleteColumns\":true}"); //xlsxファイルに保存します workbook.Save("protectionoptionsfromjson.xlsx"); |
次のサンプルコードは、IValidation.FromJsonメソッドを使用してjson文字列から検証を更新する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,] { {1, 10 }, {5, 20 } }; worksheet.Range["A1:B2"].Value = data; //jsonから検証を更新します worksheet.Range["A1:B2"].Validation.FromJson("{\"inputTitle\":\"tip\",\"inputMessage\":\"Value must be between 5 and 20.\",\"type\":1,\"condition\":{\"conType\":0,\"compareType\":1,\"item1\":{\"conType\":1,\"compareType\":3,\"expected\":\"5\",\"integerValue\":true},\"item2\":{\"conType\":1,\"compareType\":5,\"expected\":\"20\",\"integerValue\":true},\"ignoreBlank\":true},\"ranges\":\"A1\",\"highlightStyle\":\"{\\\"type\\\":0,\\\"color\\\":\\\"red\\\"}\"}"); //xlsxファイルに保存します workbook.Save("datavalidationfromjson.xlsx"); |
次のサンプルコードは、IValidation.ToJsonメソッドを使用して検証をjson文字列にエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
//jsonを保存するメモリストリームを作成します MemoryStream outputStream = new MemoryStream(); //新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); var worksheet = workbook.ActiveSheet; //検証を作成します worksheet.Range["C2:E4"].Validation.Add(ValidationType.Whole, ValidationAlertStyle.Stop, ValidationOperator.Between, 1, 8); IValidation validation = worksheet.Range["C2:E4"].Validation; validation.IgnoreBlank = true; validation.InputTitle = "Tips"; validation.InputMessage = "Input a value between 1 and 8, please"; validation.ErrorTitle = "Error"; validation.ErrorMessage = "input value does not between 1 and 8"; validation.ShowInputMessage = true; validation.ShowError = true; //検証をjsonにエクスポートします string json = worksheet.Range["C2:E4"].Validation.ToJson(); StreamWriter writer = new StreamWriter(outputStream); writer.Write(json); writer.Flush(); |
注意点:
sheet.Range["A1:B2"].Validation.FromJson("...\"ranges\":\"C3:D4\"...");ここで、DioDocs for Excel APIおよびjsonデータの両方が範囲情報を提供します。データ検証を適用する際、前者が適用され、後者は無視されます。
次のサンプルコードは、IFormatConditions.FromJsonメソッドを使用してjson文字列から範囲の条件付き書式設定を更新する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,]{ {"Name", "City", "Birthday", "Eye color", "Weight", "Height"}, {"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67, 165}, {"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62, 134}, {"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72, 180}, {"Natalie", "Washington", new DateTime(1972, 8, 8), "Blue", 66, 163}, {"Damon", "Washington", new DateTime(1986, 2, 2), "Hazel", 76, 176}, {"Angela", "Washington", new DateTime(1993, 2, 15), "Brown", 68, 145} }; worksheet.Range["B:C"].ColumnWidthInPixel = 80; worksheet.Range["A1:F7"].Value = data; //jsonから条件付き書式設定を更新します worksheet.Range["E2:E7"].FormatConditions.FromJson("{\"rules\":[{\"ruleType\":13,\"ranges\":[{\"row\":1,\"rowCount\":6,\"col\":4,\"colCount\":1}],\"iconSetType\":5,\"iconCriteria\":[{\"isGreaterThanOrEqualTo\":true,\"iconValueType\":4,\"iconValue\":33},{\"isGreaterThanOrEqualTo\":true,\"iconValueType\":4,\"iconValue\":67}],\"priority\":2,\"icons\":[{\"iconSetType\":5,\"iconIndex\":0},{\"iconSetType\":5,\"iconIndex\":1},{\"iconSetType\":5,\"iconIndex\":2}]},{\"ruleType\":1,\"operator\":6,\"stopIfTrue\":true,\"ranges\":[{\"row\":1,\"rowCount\":6,\"col\":4,\"colCount\":1}],\"value1\":\"66\",\"value2\":\"70\"}]}"); //xlsxファイルに保存します workbook.Save("conditionalformatsfromjson.xlsx"); |
次のサンプルコードは、IFormatConditions.ToJsonメソッドを使用してjson文字列に条件付き書式設定をエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
//jsonを保存するメモリストリームを作成します MemoryStream outputStream = new MemoryStream(); //新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,]{ {"Name", "City", "Birthday", "Eye color", "Weight", "Height"}, {"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67, 165}, {"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62, 134}, {"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72, 180}, {"Natalie", "Washington", new DateTime(1972, 8, 8), "Blue", 66, 163}, {"Damon", "Washington", new DateTime(1986, 2, 2), "Hazel", 76, 176}, {"Angela", "Washington", new DateTime(1993, 2, 15), "Brown", 68, 145} }; worksheet.Range["A1:F7"].Value = data; //重量が66〜70の場合、内部の色をLightGreenに設定します IFormatCondition condition = worksheet.Range["E2:E7"].FormatConditions.Add(FormatConditionType.CellValue, FormatConditionOperator.Between, 66, 70) as IFormatCondition; condition.Interior.Color = System.Drawing.Color.LightGreen; //アイコンセットルール IIconSetCondition condition2 = worksheet.Range["E2:E7"].FormatConditions.AddIconSetCondition(); condition2.IconSet = workbook.IconSets[IconSetType.Icon3Symbols]; condition2.IconCriteria[1].Operator = FormatConditionOperator.GreaterEqual; condition2.IconCriteria[1].Value = 30; condition2.IconCriteria[1].Type = ConditionValueTypes.Percent; condition2.IconCriteria[2].Operator = FormatConditionOperator.GreaterEqual; condition2.IconCriteria[2].Value = 70; condition2.IconCriteria[2].Type = ConditionValueTypes.Percent; //条件付き書式設定をjsonにエクスポートします string json = worksheet.Range["E2:E7"].FormatConditions.ToJson(); StreamWriter writer = new StreamWriter(outputStream); writer.Write(json); writer.Flush(); |
次のサンプルコードは、ITop10.FromJsonメソッドを使用してjson文字列から上位/下位ルールの条件付き書式設定を更新する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,]{ {"Name", "City", "Birthday", "Eye color", "Weight", "Height"}, {"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67, 165}, {"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62, 134}, {"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72, 180}, {"Natalie", "Washington", new DateTime(1972, 8, 8), "Blue", 66, 163}, {"Damon", "Washington", new DateTime(1986, 2, 2), "Hazel", 76, 176}, {"Angela", "Washington", new DateTime(1993, 2, 15), "Brown", 68, 145} }; worksheet.Range["B:C"].ColumnWidthInPixel = 80; worksheet.Range["A1:F7"].Value = data; //jsonから上位/下位ルールを更新します ITop10 top10 = worksheet.Range["F2:F7"].FormatConditions.AddTop10(); top10.FromJson("{\"ruleType\":5,\"style\":{\"backColor\":\"Accent 5\",\"hAlign\":3,\"vAlign\":0,\"locked\":true,\"textIndent\":null,\"cellButtons\":null},\"type\":0,\"rank\":\"3\",\"ranges\":[{\"row\":1,\"rowCount\":6,\"col\":5,\"colCount\":1}]}"); //xlsxファイルに保存します workbook.Save("top10fromjson.xlsx"); |
次のサンプルコードは、ITop10.ToJsonメソッドを使用してjson文字列に上位/下位ルールの条件付き書式設定をエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
//jsonを保存するメモリストリームを作成します MemoryStream outputStream = new MemoryStream(); //新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,]{ {"Name", "City", "Birthday", "Eye color", "Weight", "Height"}, {"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67, 165}, {"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62, 134}, {"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72, 180}, {"Natalie", "Washington", new DateTime(1972, 8, 8), "Blue", 66, 163}, {"Damon", "Washington", new DateTime(1986, 2, 2), "Hazel", 76, 176}, {"Angela", "Washington", new DateTime(1993, 2, 15), "Brown", 68, 145} }; worksheet.Range["A1:F7"].Value = data; ITop10 top10 = worksheet.Range["F2:F7"].FormatConditions.AddTop10(); top10.Rank = 3; top10.NumberFormat = "0.00"; top10.Interior.Color = System.Drawing.Color.FromArgb(91, 155, 213); //上位/下位ルールをjsonにエクスポートします string json = top10.ToJson(); StreamWriter writer = new StreamWriter(outputStream); writer.Write(json); writer.Flush(); |
注意点:
次のサンプルコードは、IStyle.FromJsonメソッドを使用して既存の名前付きスタイルを更新する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; //一時的なスタイルを作成します var style = workbook.Styles.Add("test"); //jsonから名前付きスタイルを更新します style.FromJson("{\"backColor\":\"#4472c4\",\"foreColor\":\"#ffffff\",\"hAlign\":3,\"vAlign\":0,\"font\":\"italic 11pt Calibri\",\"borderLeft\":{\"color\":\"Accent 2\",\"style\":5},\"borderTop\":{\"color\":\"Accent 2\",\"style\":5},\"borderRight\":{\"color\":\"Accent 2\",\"style\":5},\"borderBottom\":{\"color\":\"Accent 2\",\"style\":5},\"locked\":true,\"textIndent\":null,\"cellButtons\":[]}"); worksheet.Range["D4"].Value = "grapecity"; worksheet.Range["D4"].Style = style; //xlsxファイルに保存します workbook.Save("namedstylefromjson.xlsx"); |
次のサンプルコードは、IStyle.ToJsonメソッドを使用して名前付きスタイルをjson文字列にエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
//jsonを保存するメモリストリームを作成します MemoryStream outputStream = new MemoryStream(); //新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); //一時的なスタイルを作成します var style = workbook.Styles.Add("CustomStyle1"); style.Interior.Color = System.Drawing.Color.FromArgb(68, 114, 196); style.Font.Color = System.Drawing.Color.White; style.Font.Italic = true; style.Font.Size = 18; style.Borders.Color = System.Drawing.Color.DarkOrange; style.Borders.LineStyle = BorderLineStyle.Medium; //スタイルをjsonにエクスポートします string json = style.ToJson(); StreamWriter writer = new StreamWriter(outputStream); writer.Write(json); writer.Flush(); |
次のサンプルコードは、ISparkline.FromJsonメソッドを使用してスパークラインを更新する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,] { {"Number", "Date", "Customer", "Description", "Trend", "0-30 Days", "30-60 Days", "60-90 Days", ">90 Days", "Amount"}, {"1001", new DateTime(2017, 5, 21), "Customer A", "Invoice 1001", null, 1200.15, 1916.18, 1105.23, 1806.53, null}, {"1002", new DateTime(2017, 3, 18), "Customer B", "Invoice 1002", null, 896.23, 1005.53, 1800.56, 1150.49, null}, {"1003", new DateTime(2017, 6, 15), "Customer C", "Invoice 1003", null, 827.63, 1009.23, 1869.23, 1002.56, null} }; worksheet.Range["B2:K5"].Value = data; worksheet.Range["B:K"].ColumnWidth = 15; worksheet.Tables.Add(worksheet.Range["B2:K5"], true); worksheet.Tables[0].Columns[9].DataBodyRange.Formula = "=SUM(Table1[@[0-30 Days]:[>90 Days]])"; worksheet.Range["F3:F5"].SparklineGroups.Add(SparkType.Line, "G3:J5"); //jsonからスパークラインを更新します worksheet.Range["F3"].SparklineGroups[0][0].FromJson("{\"row\":2,\"col\":5,\"orientation\":1,\"data\":{\"row\":2,\"col\":6,\"rowCount\":1,\"colCount\":5}}"); //xlsxファイルに保存します workbook.Save("sparklinefromjson.xlsx"); |
次のサンプルコードは、ISparkline.ToJsonメソッドを使用してスパークラインをjson文字列にエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
//jsonを保存するメモリストリームを作成します MemoryStream outputStream = new MemoryStream(); //新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); object[,] data = new object[,] { {"Number", "Date", "Customer", "Description", "Trend", "0-30 Days", "30-60 Days", "60-90 Days", ">90 Days", "Amount"}, {"1001", new DateTime(2017, 5, 21), "Customer A", "Invoice 1001", null, 1200.15, 1916.18, 1105.23, 1806.53, null}, {"1002", new DateTime(2017, 3, 18), "Customer B", "Invoice 1002", null, 896.23, 1005.53, 1800.56, 1150.49, null}, {"1003", new DateTime(2017, 6, 15), "Customer C", "Invoice 1003", null, 827.63, 1009.23, 1869.23, 1002.56, null} }; IWorksheet worksheet = workbook.Worksheets[0]; worksheet.Range["B2:K5"].Value = data; worksheet.Range["B:K"].ColumnWidth = 15; worksheet.Tables.Add(worksheet.Range["B2:K5"], true); worksheet.Tables[0].Columns[9].DataBodyRange.Formula = "=SUM(Table1[@[0-30 Days]:[>90 Days]])"; worksheet.Range["F3:F5"].SparklineGroups.Add(SparkType.Line, "G3:J5"); //スパークラインをjsonにエクスポートします string json = worksheet.Range["F3:F5"].SparklineGroups[0].ToJson(); StreamWriter writer = new StreamWriter(outputStream); writer.Write(json); writer.Flush(); |
注意点:
次のサンプルコードは、ITables.FromJsonメソッドを使用してテーブルを生成する方法を示します。
C# |
コードのコピー
|
---|---|
//新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); IWorksheet worksheet = workbook.Worksheets[0]; object[,] data = new object[,]{ {"Name", "City", "Birthday", "Eye color", "Weight", "Height"}, {"Richard", "New York", new DateTime(1968, 6, 8), "Blue", 67, 165}, {"Nia", "New York", new DateTime(1972, 7, 3), "Brown", 62, 134}, {"Jared", "New York", new DateTime(1964, 3, 2), "Hazel", 72, 180}, {"Natalie", "Washington", new DateTime(1972, 8, 8), "Blue", 66, 163}, {"Damon", "Washington", new DateTime(1986, 2, 2), "Hazel", 76, 176}, {"Angela", "Washington", new DateTime(1993, 2, 15), "Brown", 68, 145} }; worksheet.Range["A1:F7"].Value = data; worksheet.Range["B:C"].ColumnWidth = 10; worksheet.Range["D:D"].ColumnWidth = 11; //jsonからテーブルを生成します worksheet.Tables.FromJson("[{\"name\":\"Table1\",\"row\":0,\"col\":0,\"rowCount\":7,\"colCount\":6,\"style\":{\"buildInName\":\"Medium2\"},\"rowFilter\":{\"range\":{\"row\":1,\"rowCount\":6,\"col\":0,\"colCount\":6},\"typeName\":\"HideRowFilter\",\"dialogVisibleInfo\":{},\"filterButtonVisibleInfo\":{\"0\":true,\"1\":true,\"2\":true,\"3\":true,\"4\":true,\"5\":true},\"showFilterButton\":true},\"columns\":[{\"id\":1,\"name\":\"Name\"},{\"id\":2,\"name\":\"City\"},{\"id\":3,\"name\":\"Birthday\"},{\"id\":4,\"name\":\"Eye color\"},{\"id\":5,\"name\":\"Weight\"},{\"id\":6,\"name\":\"Height\"}]}]"); //xlsxファイルに保存します workbook.Save("tablefromjson.xlsx"); |
次のサンプルコードは、ITables.ToJsonメソッドを使用してテーブルをjson文字列にエクスポートする方法を示します。
C# |
コードのコピー
|
---|---|
//jsonを保存するメモリストリームを作成します MemoryStream outputStream = new MemoryStream(); //新しいワークブックを作成します var workbook = new GrapeCity.Documents.Excel.Workbook(); var worksheet = workbook.ActiveSheet; //テーブルを作成します worksheet.Tables.Add(worksheet.Range["A1:F7"], true); worksheet.Tables[0].Columns[0].Name = "Name"; worksheet.Tables[0].Columns[1].Name = "City"; worksheet.Tables[0].Columns[2].Name = "Birthday"; worksheet.Tables[0].Columns[3].Name = "Eye color"; worksheet.Tables[0].Columns[4].Name = "Weight"; worksheet.Tables[0].Columns[5].Name = "Height"; //テーブルをjsonにエクスポートします string json = worksheet.Tables.ToJson(); StreamWriter writer = new StreamWriter(outputStream); writer.Write(json); writer.Flush(); |
注意点: