.NET でスプレッドシートを生成しようとしています。マネージャーが不在のときに iPad で開くことができます。
スプレッドシートは Windows PC では正常に開きますが、iPad で開こうとすると、「ドキュメントの読み取り中にエラーが発生しました」と表示されます (非常に便利です!)
OpenXML SDK Productivity ツールの「比較」機能を iPad で開くドキュメントで使用し、問題のあるドキュメントの XML ファイルをメモ帳で手動で編集することにより、ファイルxl/_rels/workbookに絞り込みました。ワークブック内のパーツの関係を格納する.xml.rels 。
これは、WorkbookPart と参照を生成するために使用しているコードです。
WorkbookPart workbookPart1 = document.AddWorkbookPart();
WorkbookStylesPart workbookStylesPart1 = workbookPart1.AddNewPart<WorkbookStylesPart>("rId3");
ThemePart themePart1 = workbookPart1.AddNewPart<ThemePart>("rId2");
WorksheetPart worksheetPart1 = workbookPart1.AddNewPart<WorksheetPart>("rId1");
私のコードは次の出力を生成しますが、iPad では開きません。
<?xml version="1.0" encoding="utf-8" ?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="/xl/styles.xml" Id="rId3" />
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="/xl/theme/theme.xml" Id="rId2" />
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="/xl/worksheets/sheet.xml" Id="rId1" />
</Relationships>
Target 属性の値を相対参照パスを使用するように変更すると、次の出力が得られ、iPad で開きます。
<?xml version="1.0" encoding="utf-8" ?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml" Id="rId3" />
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme.xml" Id="rId2" />
<Relationship Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet.xml" Id="rId1" />
</Relationships>
問題は
、.NET コードを変更して、XML の 2 番目のバージョンを相対パスで出力するようにするにはどうすればよいかということです。
すべての助けに感謝します!