*

セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

公開日: : C#, 開発

どもです。

前回、C#/OpenXmlを用いて、エクセルのセル内の文字列から「打消し線で消されていない文字列のみを取得する方法」について書きました。
このエントリでは、xlsx形式のエクセルの内容、構成を解説することも目的としていました。
そのため、紹介したコードが長くなってしまいました。
そこで今回は、先のエントリで紹介したコードを、より単純でC#っぽく書き直してみました。

1.開発環境

今回の開発環境です。
前回のエントリから、一切の変更はありません。

項目 内容
OS Windows10 Pro(1909)
CPU i7-8700
メモリ 16GB
IDE VisualStudioCommnuity 2019
version 16.5.1
.NET Framework 4.7
OpenXml 2.11.3
Excel Office 2013

2.プログラムの変更点

今回のプログラムの変更は、主にセル内の情報の解析と、その結果の文字列の取得部分です。
実際の変更後のコードは、下記のようになります。

2.1.r要素の取得

まず、r要素の取得ですが、これはSharedStringItemのElementsメソッドを使用することで取得ができます。
具体的には、下記の1行で完了です。

また、r要素の有無については、上記コードの戻り値のcount()メソッドを使用して確認ができます。

2.2.rPr要素の取得と確認

次に、rPr要素ですが、RunオブジェクトのRunPropertiesプロパティから取得できます。
rPr要素の子要素、strike要素の有無については、r要素の場合と同様でElementsメソッドを使用して取得します。
具体的には、下記のコードで取得しています。

strike要素の有無については、上記strikeElementsのcount()メソッドの戻り値で確認、判定ができます。
あとは、判定結果に従って文字列の取得/破棄を行えば完了です。

3.まとめ

今回紹介したコードは、機能的には全く同じです。
しかし、コード量は今回紹介したモノの方が、圧倒的に少ないです。
シンプルで分かり易いものになっているかと思います。
前回のコードとも比較して、その違いを確認、参考にしていただければ幸いです。

ではっ!

ex.公開しています

今回のコードは、GitHubで公開しています。
全体を確認する際には、リンク先のコードを参照してください。

関連記事

no image

C言語でEV3開発(10)-opOUTPUT_CLEAR_COUNTコマンド

どもです。 前回のエントリーのラストで、「モーターを動かすコマンド」と書きましたが、今回紹介するコ

記事を読む

think_about_utest

middle_unit
最小…よりも(ほんの)少し大きいテストフレームワーク

どもです。 今回は、単体テストのフレームワークについて書きます。 1.最小のフレームワーク

記事を読む

think_about_utest

単体テストの効率化を考える(3)-スタブの引数

どもです。 「単体テストの効率化について考える」の3回目です。 1回目、2回目はコチラ:

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

raspberry-pi

ライブラリでRasPiのピンにアクセス(3)-割り込み対応

どもです。 少し間が空いてしまいましたが、RaspberryPiのピンをより簡便に使用するため

記事を読む

no image

C言語でEV3開発(15)-TOPPERS/HRP2 EV3 で PID制御

どもです。 今回のエントリーは、コレまでのエントリーから内容を変えて、モーターの動作の制御をします

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(7):pigpioを使用したチャタリング対策の問題

どもです。 前回のエントリーで、pigpioを使用したチャタリング対策について記載しました。 今

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

think_about_utest

VisualStudioで実行した単体テストの結果の出力(3)-テスト実行からレポート生成までをツールで自動化

どもです。 前々回、前回と、VisualStudio/C#での単体テストの効率化について書いて

記事を読む

no image

RaspberryPiのOS:RaspbianをNOOBSでセットアップしてみた

どもです。 今回の内容は、「今更!?」ですがNOOBSでRaspbianをセットアップしたとい

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

c_sharp_eye_catch
セルに「取り消し線」が設定されているかを判定してみた

どもです。 前回、前々回と、エクセルのセル内の文字列から、「取り

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

→もっと見る

PAGE TOP ↑