タグ付けされた質問 「excel」

7
VBAからC#に移行するチームメンバーの質問
バックグラウンド 昨年、約10人のユーザーのビジネス計画に使用するツールの作成を依頼されました。これは、作業を「下請け」する別のITチームに代わって行われ、プロジェクトの締め切りが彼らの側で少し計画外であるため、私はそれを少し急いで実装しなければなりませんでした。 当時、私たちは、VBAを使用してExcelブックを作成し、ユーザーがこのVBAが強化されたブックをイントラネットからダウンロードしてPCで使用するのが最も簡単な方法であると判断しました。この場合、Excelは制約でした。使用する計画システム(データベース)は、計画ワークブックを開くと同時にロードする必要があるExcelアドインを介してのみ対話できるためです。ただし、当時のVBAは制約ではありませんでした。 約4,000行のVBAコードを作成したワークブックで、データレイヤーとプレゼンテーションレイヤーを分離しようとしましたが、プロジェクトの締め切りのためにすべてのケースでできませんでした。正直に言って、このワークブックを作成することを誇りに思っていますが、同時に、コーディングとユーザーへの展開の両方の面で、より良くできたという点で少しがっかりしています。 今日 今日に戻ると、ITチームが再び同じようなワークブックをリクエストするようになりました(したがって、上記の他のワークブックの一部を再利用できます)が、今回ははるかに複雑で、より多くのユーザーに使用されます(約200)。 ただし、今回は少し計画が良く、計画を立てる時間がもう少しあることがわかります。これに基づいて、100人のユーザー向けのプログラミングは10人のユーザー向けよりも影響が大きいため、ソリューションとインフラストラクチャについて考えました。したがって、既存のコードをC#ソリューションに移行して、コードをより洗練された方法で管理できるようにすることを検討することをチームに提案しました。VSTO / Excel-DNAを使用して作成され、ユーザーに展開できるアドインとしてまだ検討中です。 私はこれを2週間前にITチームと話し合い、すべてが順調であるように見えましたが、昨日まで、チームの1人(VBAまたはC#を知らない)から、この新しいプロジェクトをC#で開始するのではなく、前と同じアプローチ。彼らの懸念のいくつかは次のとおりです。 これはかなり重要なプロジェクトであるため、動作する必要があります。C#ソリューションは、既存のVBAベースのソリューションほど安定しておらず、動作しません。 VBAソリューションで行った[I]処理を破棄し、C#でゼロから再作成する必要があります。 誰かがVBAとC#の2つの別々のソリューションをサポートする必要があります。[実際、彼らは現在サポートのための誰かを持っていません、私は通常介入します]。 今、私は彼らの懸念のいくつかをある程度理解することができますが、次のステップと彼らに何を戻すべきかについて決定する必要があります。個人的には、C#で実装したいと思います。なぜなら、このような「エンタープライズ」ソリューションを構築する方が良いと思うからです。さらに、私はこの機会にC#のスキルを磨きたいと思います。私は現在C#の能力がVBAほどではないので、このようなプロジェクトを「次のレベル」に引き上げたいと思っています。 私は、C#ソリューションがこのプロジェクトに適していると確信させるために使用できるポイントのリストを用意しました。 単体テスト。 ソース管理。 コードのドキュメント-他のサポート担当者への知識の伝達。 コーディング規則の改善-ReSharperなどを使用して、命名と構造を強化できます。 IDEの改善-エラーの強調表示によるミスの減少。 アセンブリによるモジュール性の向上-将来のツールでの再利用を促進できます。 管理された展開-このツールの使用者を制御できます。 質問:説得するために他にどのような点を追加できますか?それとも、このプロジェクトで噛むことができる以上に噛み砕こうとしていますか?とにかく静かにしてVBAでやるべきですか? 「新しい」または「クールな」と思われるため、新しい言語に移行するだけでは判断の根拠にならないため、それを判断ポイントとして含めることを拒否しています。 また、私は言語としてのC#とVBAのリテラル比較を求めていません。SOには多くの比較があるからです。

4
ワークフロー:ロックなしでGitでバイナリドキュメント形式を使用する(subversionから移動)
私たちは、さまざまな顧客向けの多数のプロジェクトを持つソフトウェアコンサルタントです。従来はSubversionを使用していましたが、現在Gitへの移行を検討しています。 私たちが作成するドキュメントの大部分はお客様と共有されており(要件、グローバル設計、テスト仕様など)、MS Officeを使用してこれらを作成しています。Subversionでは、「ロック」機能を使用して、同じドキュメントを同時に編集しているユーザーがいないことを確認できます。Gitでは、分散型の性質上、gitにはロックがないため、これを行うことはできません。 ロックは実際には通信メカニズムにすぎませんが、非常に効果的なものです。 現在、私たちのコードと顧客向けのドキュメントは通常、異なるsvnリポジトリの異なるサブフォルダーにあります。gitに移行するときに、私たちが推奨することは何ですか?オプションのセットが表示されます: svnリポジトリをgit 1-on-1に移動します。Officeファイルでロックを使用する代わりに、gitの人々が提案することを行い、何らかの方法でワークフローを変更して修正します。これは、ドキュメント編集のブランチで機能し、オーバーレビューをマージする可能性があります。このアプローチは、プロジェクト管理情報を含むExcelシートなどを分割します。チームメンバーは簡単に編集できますが(これを行うことをお勧めします)、正式なレビュープロセスの対象ではありません コードにはgitを、ドキュメントとプロジェクト管理にはsvnを使用します。これには、よりデザイン性の高い特定のドキュメントが仕様のコードの「近く」にないため、更新を忘れる可能性が高くなるという欠点があります。さらに、誰もが2つのツールセットを使用して理解する必要があります。とはいえ、これはおそらく、顧客と向き合っていない設計ドキュメント用のテキストベースのドキュメントツール(ラテックス、マークダウン、HTMLなど)に移行する絶好の機会です。 1に似git lockていますが、svnロックが行うことを行うコマンドをハックします(読み取り専用フラグを適切に切り替え、何らかの手段でサーバーと同期します)。 DVCSでロックが機能しないという議論は、あなたが完全にオフラインのときでもシステムが機能するはずだからです。SVNロックもオーバーライドできます。それらは通信メカニズムです。なんらかのネットワーク接続がなければ、コンピューターはあまり通信できません。 私svn lockたちのワークフローにどの程度適合しているかに非常に満足しているお店は私たちだけではありませんよね? アイデアやヒントはありますか? /programming/119444/locking-binary-files-using-git-version-control-systemが見つかりましたが、議論はかなり技術的なものです。2人のチームメンバーが同じバイナリファイルを同時に編集するという実際的な問題を解決または回避する方法を探しています。
16 git  svn  dvcs  excel  word 

3
コードでExcel(xlsx)ファイルを生成するための良いデザインパターンは何ですか?
詳細については、下部の更新を参照してください。 Excelファイル(xlsx形式)としてデータを出力する必要があるプロジェクトがときどきあります。通常、プロセスは次のとおりです。 ユーザーが私のアプリケーションのいくつかのボタンをクリックする 私のコードはDBクエリを実行し、結果を何らかの方法で処理します 私のコードは、Excel com相互運用ライブラリまたはサードパーティライブラリ(Aspose.Cellsなど)を使用して* .xlsxファイルを生成します これをオンラインで行う方法のコード例を簡単に見つけることができますが、より堅牢な方法を探しています。私のコードがいくつかの設計原則に従って、私のコードが維持可能で簡単に理解できるようにしたいと思います。 xlsxファイルを生成する最初の試みは次のとおりです。 var wb = new Workbook(); var ws = wb.Worksheets[0]; ws.Cells[0, 0].Value = "Header"; ws.Cells[1, 0].Value = "Row 1"; ws.Cells[2, 0].Value = "Row 2"; ws.Cells[3, 0].Value = "Row 3"; wb.Save(path); 長所:それほど多くはありません。動作するので、それは良いことです。 短所: セル参照はハードコーディングされているため、コード全体にマジックナンバーが散らばっています。 多くのセル参照を更新せずに列と行を追加または削除することは困難です。 サードパーティのライブラリを学ぶ必要があります。一部のライブラリは他のライブラリと同様に使用されますが、それでも問題が発生する可能性があります。com interopライブラリが1ベースのセル参照を使用し、Aspose.Cellsが0ベースのセル参照を使用するという問題がありました。 上に挙げたいくつかの短所に対処する1つのソリューションを次に示します。データのテーブルを、セルの操作や他のセル参照を妨害することなく移動したり変更したりできる独自のオブジェクトとして扱いたいと思いました。擬似コードは次のとおりです。 var headers = new Block(new …

5
同僚にExcelを超えるデータベース+アプリケーションソリューションの利点を示すために利用できる方法は何ですか?
私はどこにでもExcelスプレッドシートがある会社で働いています。私の同僚はプログラマーではないので、彼らは自分のデータを管理するより良い/簡単/生産的な方法があるかもしれないとは考えていなかったと確信しています。当然、さまざまなスプレッドシートに現在配布されているさまざまなワークフローのニーズに合わせて調整された、リレーショナルデータベースおよびインタラクティブフロントエンドにある機能を活用できる種類のアプリケーションを提唱しています。 私が抱えている問題は、そのようなシステムのメリットをさまざまな関係者に説明しようとしたことですが、実際にゼロから書くのではなく、それらを納得させるのに苦労しています。一般に人々はExcelを理解しています(パワーユーザーでなくても)が、「データベース」という単語が表示されたり、「コード」について話し始めると、すべてが曖昧になる可能性があります。 スプレッドシートから実際のアプリケーションに切り替えることでワークフローがどのように改善されたかを示す証拠とともに、誰かが方法を提案できますか?

2
Pythonのパワーオペレーターを右に関連付ける理由は何ですか?
数式文字列を解析するコードを書いていますが、Pythonでチェーンされたべき乗演算子が評価される順序がExcelでの順序と異なることに気付きました。 http://docs.python.org/reference/expressions.htmlから: 「したがって、括弧で囲まれていない累乗演算子と単項演算子のシーケンスでは、演算子は右から左に評価されます(これは、オペランドの評価順序を制約しません)。-1 * 2の結果は-1になります。」* つまり、Pythonでは次のよう 2**2**3に評価されます。2**(2**3) = 2**8 = 256 Excelでは、それは逆に動作します:2^2^3として評価されます(2^2)^3 = 4^3 = 64 次に、自分のパーサーの実装を選択する必要があります。Excelの順序は、乗算の評価順序を反映しているため、実装が簡単です。 事務所周辺の何人かに評価の感触を聞いてみたところ、2^2^3さまざまな反応がありました。 Pythonの実装を支持する正当な理由や考慮事項を知っている人はいますか?あなたは答えを持っていない場合や、結果としてくださいコメントあなたは腸の感じから取得する- 64または256?

6
2000年代のソフトウェアソリューションですが、すべてにパッチを適用するか、再作成する必要がありますか?
ある会社が現在利用しているシステムと、それをどうするかについて話し合った。 同社はさまざまなカートンディスプレイを製造しています。このシステムは、クライアント、注文、価格を追跡するために開発されました。システムが作成されてから多くのことが起こりましたが、システムは、マネージャーが説明したように、「ロックされている」と「問題がある」ので、私は「動的ではない」と「不安定」と解釈しています。 システムに関するいくつかの情報 2000年頃に開発されました かなり小規模なシステム、2〜5人のユーザー、6つのフォーム、平均量のデータを含む最大8つのテーブル 初期のVisual Basicに基づいて構築された、ドラッグアンドドロップデザインで作成されたフォーム。インターフェイスは基本的にメニューといくつかのフォームを備えた単なるウィンドウです MSSQLデータベース(SQL2005サーバー)を使用してデータとクエリ用のODBCドライバーを格納し、データがこのシステムの前にExcelから移行され、Excelの前に手動で処理され、計算され、記述された ユーザーはMicrosoft XP環境(およびそれ以上)で作業します 彼らの主な問題は、価格を調整および計算できない、新しいカートンタイプなどを正しく追加できない、サーバー上のデータにアクセスできない(または、方法がわからない)ため、もう正しくできないことです。 私は3つの可能な解決策を提案しました 現在のシステムにパッチを適用しようとする 新しい新しいインターフェースを作成します(できれば、同様の環境、VB.netまたはVBベース) 非常に小さなシステムであることを考慮して、Excelソリューションに戻します さらに多くのオプションがあるかもしれませんが、これらは私が考えることができるものです。 私の質問は 私は何を勧めるべきですか、そしてなぜですか? これらの代替案の長所と短所は何ですか? 他の(おそらくより良い)代替案はありますか?

2
タイプCOMオブジェクトのプロパティがあっても問題ありませんか
VB.Netを使用して、Microsoft Excel用のCOMアドインを開発しています。特定の要素を含むワークシートを表すクラスを作成しました。たとえば、ListObjectがあるとします。次のようにListObjectのプロパティを作成します。 Public Class MySheet Private myTable as Excel.ListObject Public Property Table() As Excel.ListObject Get Return myTable End Get Set(ByVal value As Excel.ListObject) myTable = value End Set End Property 次に、たとえばMySheetクラスに、ListObjectの属性を表すプロパティがあります。 Private myTableStyle As String Public Property TableStyle As String Get Return myTableStyle End Get Set(ByVal value As String) myTableStyle …
8 vb.net  excel 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.