私はc#の知識がほとんどありません。ユーザーからの入力を受け取るウィンドウフォームを作成しているので、Excelファイルに保存したいと思います。このhttp://i.stack.imgur.com/PZubD.pngのように、申し訳ありませんが、画像をアップロードできません。このようなフォームを作成し、このフォーム全体を保存したいので、画像のリンクは上にあります。正確にExcelファイルで。http://i.stack.imgur.com/8AmMS.pngの下の画像のように、Excelでデータを保存できるように、すべてのデザイン、ラベル、テストボックスは正確に同じ場所に配置する必要があります。ご覧のとおり、数量、商品名、レート、合計金額が所属場所に保存されています。すべてのデータがその真下に格納されるように、まさにこのようにしたいと思います。それを実現することは可能ですか?
WindowsフォームからExcelにデータを保存できますが、この正確な形式では保存できません。だから私はここでこれを求めています。
私を助けてください。
することは可能です。
Excel Interop名前空間、具体的にはMicrosoft.Office.Interop.Excel名前空間を利用する必要があります。
ドキュメントはここにあります:
https://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.excel.aspx
Excelファイルへの書き込み、更新、変更などの機能を提供します。
つまり、各セルに必要な特定のテキストまたはラベル情報を割り当てます。
たとえば、メソッドには次のようなものがあります。
// Put this in the namespace references sections
using Excel = Microsoft.Office.Interop.Excel;
//inside your class(es) that will be writing to Excel
Excel.Application xlApp; //instance of the Excel application
Excel._Workbook xlWB; //will become the workbook object of the Excel application
Excel._WorkSheet xlWS; //will become the worksheet object of the Excel application
object misval = System.Reflection.Missing.Value; //used to cover certain arguements for saving (as far as I gather)
public void ExcelWriter()
{
xlApp = new Excel.Application; //starts an instance of Excel
xlApp.Visible = false; //hides the application from appearing on screen
xlApp.Dialog = false; //keeps the "Save As" dialogs from appearing when it goes to save
//adds a new workbook to the Excel application and puts a new sheet in it
xlWB = (Excel._Workbook)(xlApp.Workbooks.Add("Name of Book Goes Here"));//your workbook instance
xlWS = (Excel._WorkSheet)xlWS.ActiveSheet;//your worksheet instance
//each cell is referenced along an array
//for example, cell A1 is 1,1
xlWS.Cells[1,1] = label1.Text;
xlWS.Cells[1,2] = label2.Text;
xlWS.Cells[1,3] = label3.Text;
xlWS.Cells[1,4] = label4.Text;
.....
//whatever executable code you'd like here
//formatting of cells, fonts, etc.
xlWB.SaveAs("C:\\Path\Goes\Here", misval, misval, misval,
misval, misval, misval, misval, misval,
misval, misval, misval, misval);
xlWB.Close();
xlApp.Quit();
}
しかし、それは次のような多くの質問につながります。
私もこれを言います:Interopsはアプリケーションを正しく閉じることで非常に厄介になる可能性があります。アプリを閉じたり、Excelを適切に終了しなかったりするエラーが発生している場合は、Excelインスタンスが実行されたままになります。必ずタスクマネージャをチェックし、例外をチェックし、Excelが想定どおりに終了することを確認してください。
参照する他のいくつかの投稿:
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加