前提・実現したいこと
Excelファイルにデジタル署名を行うプログラムを作成しています。
今は、C#のopenxmlにおけるDigitalSignatureを使用し実現を試みていますが、プログラミング初心者であるためやり方がわかりません。
どなたか、openxmlを使用したデジタル署名を行う方法をご存じでしたら教えてください。
C#初心者で、ほぼ何もわからないです。
<参考にしたサイト>
Microsoft APIリファレンス
少し読んでみましたが、何が何だか全くわかりませんでした。
該当のソースコード
C#
1using System; 2using System.IO; 3using DocumentFormat.OpenXml; 4using DocumentFormat.OpenXml.Packaging; 5using DocumentFormat.OpenXml.Spreadsheet; 6using DocumentFormat.OpenXml.ExtendedProperties; 7 8 9namespace Excel_Export 10{ 11 class Program 12 { 13 static void Main(String[] args) 14 { 15 // 出力先はデスクトップ 16 var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "sample.xlsx"); 17 18 // スプレッドシート ドキュメントを作成 19 var document = SpreadsheetDocument.Create(path, SpreadsheetDocumentType.Workbook); 20 21 // WorkbookPart をドキュメントに追加 22 var workbookPart = document.AddWorkbookPart(); 23 workbookPart.Workbook = new Workbook(); 24 25 // WorksheetPart を workbookpart に追加 26 var worksheetPart = workbookPart.AddNewPart<WorksheetPart>(); 27 var sheetData = new SheetData(); 28 worksheetPart.Worksheet = new Worksheet(sheetData); 29 30 // sheets をワークブックに追加 31 var sheets = workbookPart.Workbook.AppendChild(new Sheets()); 32 33 // ワークシート をワークブックに追加 34 var sheet = new Sheet() 35 { 36 Id = workbookPart.GetIdOfPart(worksheetPart), 37 SheetId = 1, 38 Name = "Sample" 39 }; 40 sheets.Append(sheet); 41 42 // sheetData に行を追加 43 var row1 = new Row(); 44 row1.Append(new Cell() 45 { 46 DataType = CellValues.String, 47 CellValue = new CellValue("A1のセル") 48 }); 49 sheetData.Append(row1); 50 51 var row2 = new Row(); 52 row1.Append(new Cell() 53 { 54 DataType = CellValues.String, 55 CellValue = new CellValue("A2のセル") 56 }); 57 sheetData.Append(row2); 58 59 // ワークブックを保存 60 worksheetPart.Worksheet.Save(); 61 62 // ドキュメントを閉じる 63 document.Close(); 64 65 Console.WriteLine("Excel ファイルの出力に成功しました。"); 66 } 67 } 68} 69
試したこと
他のサイトを参考にしデスクトップにExcelファイルを出力するコードを作りました(丸写し)。
補足情報(FW/ツールのバージョンなど)
Open-XML-SDK 2.9.1 を使用しています
しつもんはなんでしょうか
openxmlを使用してExcelファイルにデジタル署名を付加する方法を教えていただきたいということです。
Excelファイルにデジタル署名を付加する、ってのが意味不明ですが、なにをするためにそれをやりたいんでしょうか
Microsoft の公式ドキュメントのどこを見たんですか?
どのレベルのことがわからないのか、どこまでわかるのかを明示してください。
稚拙な質問で申し訳ありません...
Zuishinさん
本当に申し訳ないのですが、C#は初学で何もわかりません。
なので、ほぼC#に関する知識が0です。
y_waiwaiさん
デジタル署名を行うことでExcelの改ざんを防止したいと考えています。
何が分からないのか自分でも分かってないでしょ? もしくは文書化できるスキルが無い?
これを読んでください⇒ https://teratail.com/help/question-tips
特に以下のところ:
"人に質問をするには、自分が何を尋ねたいかを知っている必要があります。これは、「自分が今『何がわからないのか』がわかっていて、言語化できている」ということです。一見簡単なようですが、実はとても難しいことです。何がわからないかわからない人から質問を受けても、答える側も困ってしまいます。"
> なので、ほぼC#に関する知識が0です。
じゃあそこからじゃないですかね。
プログラミングできなくていいならツールを探せばいいと思います。
こういう話 ↓ と混同している?
厳密な名前付きアセンブリ
http://surferonwww.info/BlogEngine/post/2011/09/13/Strong-named-assembly.aspx
あなたの回答
tips
プレビュー