OpenXMLを使用して12桁のUPC用に書式を設定するExcel文書で列を取得しようとしています。 I(このquestion基づいて)次のコードを使用していますこれを達成するためにCでOpenXMLで数値書式を適用するときに問題が発生しました
:上記のコードは、残念ながらExcelのような破損と判断スタイルシートを生成
var sp = workbookpart.AddNewPart<WorkbookStylesPart>();
sp.Stylesheet = new Stylesheet {NumberingFormats = new NumberingFormats(), CellFormats = new CellFormats()};
var upcFormatting = new NumberingFormat {NumberFormatId = 164, FormatCode = "000000000000"};
var upcCellFormat = new CellFormat
{
NumberFormatId = upcFormatting.NumberFormatId,
FontId = 0U,
FillId = 0U,
BorderId = 0U,
FormatId = 0U,
ApplyNumberFormat = BooleanValue.FromBoolean(true)
};
sp.Stylesheet.NumberingFormats.AppendChild(upcFormatting);
sp.Stylesheet.CellFormats.AppendChild(upcCellFormat);
sp.Stylesheet.NumberingFormats.Count++;
sp.Stylesheet.CellFormats.Count++;
var styleIndex = sp.Stylesheet.CellFormats.Count;
workbookpart.Workbook.Save();
は、シートはとてもようになります。
<?xml version="1.0" encoding="UTF-8"?>
<x:styleSheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:numFmts count="1">
<x:numFmt formatCode="000000000000" numFmtId="164"/>
</x:numFmts>
<x:cellXfs count="1">
<x:xf numFmtId="164" applyNumberFormat="1" xfId="0" borderId="0" fillId="0" fontId="0"/>
</x:cellXfs>
</x:styleSheet>
誰も私のようなだけのOpenXMLを(それを中心に構築された任意のフレームワークを使用することはできません使用して表示される12桁の数字を可能番号形式で生成された有効なスタイルシートを、得ることができる方法についての洞察を提供することができればクローズドXML)私はうわーuldはそれを非常に感謝します。
おかげで、
[OpenXML Productivity Tool](http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5124)を使用して問題を把握しました。 フォント、罫線、塗りつぶし、およびセルスタイルのセクションも追加する必要があることを発見しました。私が望む形式の空白を作成することで、このツールを使用して必要なコードを確認することができました。 - **注**:マヌエルの答えを見る前にこれを理解したので、彼の提案だけで十分であるかどうかはわかりませんが、どのような場合でも生産性ツールを使用すると、鉱山。 –