我试图从excel的Windows窗体应用程序中获取插入文本框中的值。我试图实例化该类,还尝试将值放入构造函数中,也尝试使用
rvalue.Value2 = (decimal)a.SumaDepusa;
并使SumaDepusa字段变为静态,这对SumaDepusa造成相同的错误:'Form1'不包含'SumaDepusa'的定义,并且没有可访问的扩展方法'SumaDepusa'接受第一个参数可以找到类型“ Form1”(是否缺少using指令或程序集引用?) 这是完整的代码:
namespace WindowsFormsApp1 {
public partial class Form1 : Form {
public Form1 () {
InitializeComponent ();
}
public void textBox1_TextChanged (object sender, EventArgs e) {
decimal SumaDepusa = decimal.Parse (textBox1.Text);
}
public class SumaFinala {
public void Open () {
try {
Excel.Application app = new Excel.Application ();
app.Visible = true;
Form1 a = new Form1 ();
Excel.Workbook wkb = app.Workbooks.Open (@"C:\Users\Daniel\Desktop\a.xlsx");
Excel.Range rvalue = app.get_Range ("A2");
rvalue.Value2 = a.SumaDepusa;
} catch (Exception e) {
MessageBox.Show ("Eroare: " + e);
}
}
}
}
答案 0 :(得分:0)
这对我来说很混乱,我不知道您要达到什么目标。
这是我想您正在尝试做的。
我实现了一个从文本框中获取值的类,并在单击按钮时运行Open()
方法。此方法创建工作表并将值插入“ A [row]”
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public decimal SumaDepusa;
public Excel.Worksheet worksheet;
public int row = 1;
public Form1()
{
InitializeComponent();
var app = new Excel.Application
{
Visible = true
};
app.Workbooks.Add();
worksheet = (Excel.Worksheet)app.ActiveSheet;
}
public void Open()
{
try
{
if (decimal.TryParse(textBox1.Text, out var decimalParsed))
{
SumaDepusa = decimalParsed;
worksheet.Cells[row, "A"] = SumaDepusa;
}
else
{
MessageBox.Show($"Cannot parse: {textBox1.Text}");
}
}
catch (Exception e)
{
MessageBox.Show($"Error: {e}");
}
}
private void Button1_Click(object sender, EventArgs e)
{
Open();
row++;
}
}
}
该方法在程序运行时确实会打开一个excel工作表,因此如果不存在,则需要找到一种方法写入excel工作表,如果不创建一个新方法。将需要其他逻辑来使这项工作更好。但举例来说,为了获得其价值。