Excelの触媒波-Excel触媒51のオープンセルトラバーサル操作の性能保証

1年以上立ち上げたExcelの触媒では、再発は声を聞いて、おそらくかのように、より快適な親密な自分自身を作り、空想Excelの触媒の書き込み機能はありません人々が実際にコードを書くことを意味しますVBAは家がそれを再生し、彼らの目には、Excelの触媒のすべての機能をアウトと思われる、すべての幼稚園レベルはほとんど無敵の一般的なことができます。
ここではない、このビューにコメントだけの事実を話し、少しVBAの人々を参照するには、優れた性能を保証するために、以下の機能コードを作成することができます。

電池性能の問題トラバーサル

VBAは、グループを研究し、我々は、細胞を通過することは非常に遅いプロセスであり、それは配列を配置し、反復するために最善であることを知っています。

なぜ遅くなり、この問題は徹底的に研究されていないかもしれない、と私はトラバース、次の理由は、このようなエクセルと相互作用VBAまたはVSTOコードとしてその通信COMですので、このCOMコミュニケーションは非常に肥大化している彼の専門外の言語を使用しましたこのプロセスは、非常に非効率的なパフォーマンスが得られ、前後に通信し続けます。

配列内のデータは、それがメモリアクセスに、で、もはやあなたが立ち上がることができるように、頻繁にとCOMインターフェイスを通信する必要がありません。

COMインターフェイスに加えて、他のアクセス方法にアクセスします

開発者VBAのために、VBは、それが唯一の世界へのプロのプログラマは、彼らはいくつかの素晴らしい車輪が直接XLSまたはXLSXファイルをアクセスすることができます作られ、COMインターフェイスを訪問することはできませんさ。

しかし、VSTO。ネットの世界では、これは、非常にちょうど特にアプリケーション・サーバー・レベルである必要があり、その後、高並行性の要件と通信するCOMインターフェイスに対応できません。だから、良いサードパーティアクセスライブラリホイールの多くは、.NETの世界で多くの有名なとNPOI EPPLUSを持っています。

Excelの触媒と、すべてのユーザーのニーズを満たすためには存在するので、まだOffice2003などのバージョンの低いバージョンの使用はサポートされていない、あなたは選択肢を持っているので、シーンの大多数は、このEPPLUSをOffice2007をサポートし、フォーマットライブラリ車輪の上に使用されます。

一般的には、配列またはネイティブ検索方法を通過するが、古いデータを検索し、交換する必要があり、上記の二つの方法で、シーンにマッチする正規表現を使用する必要性は非常に不器用であることができます。

セルの実施形態トラバーサルEPPLUS

https://www.jianshu.com/p/a876134c9e8f標準的なデータ転送元を報告するタブ付き - 第75波:以下のアプリケーションのためのオリジナルソースとしての機能

EPPLUSトラバーサル非常に簡単な操作上のセルとほとんど直接VBAオブジェクトモデルの(大きな違いではNPOIは、私はそれを使用するために好きではないでしょう)。

直接コードに
このコードは検索結果のための75波のコアコードがコンテンツの新しいテーブルとして格納され、最終的に構造化されたデータソースユーザに戻されます。

 private static void AddMatchDataToDataTable(bool isActWkb, string filePath, DataTable settingTable, ref DataTable resultTable)
        {
            using (var package = new ExcelPackage(new FileInfo(filePath)))
            {
                ExcelWorkbook wkb = package.Workbook;

                foreach (var itemSht in wkb.Worksheets)
                {
                    string itemShtName = itemSht.Name;
                    if (itemShtName != settingShtName && itemShtName != resultShtName)
                    {
                        foreach (var cell in itemSht.Cells)
                        {
                            if (cell.Value != null)
                            {
                                bool isMatch = IsMatchPattern(pattern, matchType, isIgnoreCase, lookin, isRegexMatch, cell);
                                if (isMatch)
                                {
                                    DataRow dr = resultTable.NewRow();
                                    dr["工作薄路径"] = package.File;
                                    dr["工作表名称"] = itemShtName;

                                    int iStart = 2;
                                    foreach (DataRow row in settingTable.Rows)
                                    {
                                        //todo
                                        dr[iStart] = GetCellInfo(cell.Offset(Convert.ToInt32(row[1]), Convert.ToInt32(row[2])));
                                        iStart++;
                                    }
                                    resultTable.Rows.Add(dr);
                                }

                            }
                        }
                    }

                    if (isActWkb)
                    {
                        AddDataToResultSht(resultTable, wkb);
                        package.Save();
                    }// if (isActWkb)
                }//foreach (var itemSht in wkb.Worksheets)
            }

        }

エピローグ

VSTOの世界では、すべてのプロのプログラマが私たちのホイールライブラリ、比較的VBAの開発者、自然の利点があり、グループの追求を書いて、それが快適ゾーンVBAのうち別のステップ、VSTO抱擁かもしれ呼び出すことができます開発は広い空になります。

技術交流QQグループ

QQグループ名:Excelの触媒オープンディスカッショングループ、QQグループ番号:788 145 319
Excelの触媒次元コードのオープンソースのディスカッショングループ

Excelの触媒について

Excelの触媒名、最初の公開のマイクロチャンネル番号は、その名前を避ける、正式エクセルプラグイン、プラグイン継続的な更新を立ち上げ、更新サイクルは、ラインの機能モジュールに一週間のために戦うことができるかもしれ私の時間に依存します。Excelの触媒プラグイン永久無料で個々のユーザーへのコミットメント!

Excelの触媒プラグインは、一度インストールし、技術の最新の展開を使用して、すべての将来のアップデートは自動的に更新再インストールするインストールパッケージをダウンロードし、手動で、懸念の更新を繰り返す必要完了していないあなたは常に単一のインストールで最新バージョンを維持することができます!

触媒Excelは、プラグインのダウンロードリンク:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q

著者にお問い合わせください

いいえ公共ありません

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

关于Excel催化剂作者

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

2018年には、彼のキャリアは、元のフルタイムの仕事から、主要な調整を行って始めました一時的に前方の道路上で、決まった収入をフリーランスになっていない、フルタイムの仕事に苦い復帰明確ではない、のためのExcel触媒しなければならない事業と開発大きな影響を受けた(時間内にフルタイムの仕事を維持することができなかっただけで、時間に発表された作品で結果を置くことができない彼は、年齢、家族の責任の30年を持っているので、仕事以外の時間は、非常に限られている)こと。

期待と支持者の過半数:Excelの触媒は、ダウンを実行することができました、私はグループの利点を持っている(サポートすることができましたマルチメッセージの励ましを、転送小さな報酬の下での推薦と最も集中し、どこの会社ができるの下で友人のサークルと私はウィンウィンを達成するために、あなたの会社の技術の価値を最大化することができますので、お勧めのピアをお勧めします(データは協力のフォームを開発するための予備的コンサルタントや小さなプロジェクトがどのように想像することができます)。

おすすめ

転載: www.cnblogs.com/ExcelCuiHuaJi/p/11225167.html