我有一个包含多个工作表的Excel工作簿和一个C#类,用于控制每个工作表单元格中填充的内容。但是,我不能为我的生活弄清楚如何正确填充细胞。
该类有一个名为BuildSheet
的函数,它试图引用名为Rate_Lock
的工作表。
这是我的代码:
public static void BuildSheet(Excel._Worksheet sheet, string transaction, string occ)
{
Excel.Application objAppl;
Excel._Workbook objWorkbook;
Excel._Worksheet objLockSheet;
try
{
objAppl = System.Runtime.InteropServices.Marshal.GetActiveObject(
"Excel.Application") as Excel.Application;
}
catch (System.Runtime.InteropServices.COMException)
{
objAppl = new Excel.Application();
}
objWorkbook = (Excel._Workbook)objAppl.ActiveWorkbook;
objLockSheet = (Excel.Worksheet)objAppl.Worksheets["Rate_Lock"];
objLockSheet.Cells[18, 6] = transaction;
objLockSheet.Cells[20, 6] = occ;
}
我想知道我是不是想错误地引用这张纸。真正奇怪的是,在调试期间,单元格不会填充;但是,一旦我停止调试,就会在Visual Studio中填充单元格。
任何想法我做错了什么?
编辑:我还应该提到我没有收到任何错误。另外,我已经使用以下代码在特定工作表后面的代码中使用此代码:objSheet = (Excel._Worksheet)this.Application.Worksheets["Rate_Lock"];
尝试引用单独的工作表时,“this”关键字不起作用。
答案 0 :(得分:0)
通常,您应该使用单元格的Value
属性来输入文本。 (或Value2
或Text
)。
所以:
((Range)objLockSheet.Cells[18, 6]).Value = transaction;
((Range)objLockSheet.Cells[20, 6]).Value = occ;
答案 1 :(得分:0)
我找到了一种解决方法。不干净,但它的工作原理。我必须将工作表声明为开始工作表的基础类中的对象,然后将其传递给此类。试图在外部类中声明工作表根本不起作用。