C# 动态读取和写入Excel工作表

C# 动态读取和写入Excel工作表,c#,excel,C#,Excel,我正在尝试创建一个新的Excel文件,其中包含多张工作表=名称列表中的项目。然后,每个工作表都应该使用名称列表中相应的条目进行命名。完成后,我需要一种方法来调用每张表 我遇到的问题是:工作表不喜欢被设置为列表,并且不接受Excel.Worksheetworkbook.Sheets[variable]中的变量 我可以完美地在一张纸上书写,但任何创建一张纸的尝试都失败了 public CreateExcelDoc excell_app { get; set; } public Exc

我正在尝试创建一个新的Excel文件,其中包含多张工作表=名称列表中的项目。然后,每个工作表都应该使用名称列表中相应的条目进行命名。完成后,我需要一种方法来调用每张表

我遇到的问题是:工作表不喜欢被设置为列表,并且不接受Excel.Worksheetworkbook.Sheets[variable]中的变量

我可以完美地在一张纸上书写,但任何创建一张纸的尝试都失败了

    public CreateExcelDoc excell_app { get; set; }
    public Excel.Workbook workbook { get; set; }
    public List<string> NameList = new List<string>();
    public List<Excel.Worksheet> worksheets { get; set; } // tried: = new List<Excel.Worksheet>();


    public void setupFile(int i) // this method errors on each of the 2 lines
            {
                worksheets[i] = (Excel.Worksheet)workbook.Worksheets.Add();
                worksheets[i].Name = NameList[i];
            } // this method is in a separate public class from CreateExcelDoc


        public class CreateExcelDoc
        {
            private Excel.Application app = null;
            Excel.Workbook workbook = null;
            Excel.Worksheet worksheet = null;
            private Excel.Range workSheet_range = null;
            public CreateExcelDoc()
            {
                try
                {
                    app = new Excel.Application();
                    app.Visible = true;
                    workbook = app.Workbooks.Add(1);
                    //worksheets[0] = (Excel.Worksheet)workbook.Sheets[1];
                    //worksheet.Name = "t";
                }
                catch (Exception e)
                {
                    MessageBox.Show("Exception Occured while exporting to Excel doc. Error: " + e.ToString());
                }
                finally
                {
                }
            }
    _Other Methods for writing to cells omitted_
    }

你说它是错误的-你看到了什么错误?另外,是否有理由使用单独的列表而不仅仅使用内置的工作表属性?NullReference是特定的错误。无论变量设置为什么,都会发生这种情况。-工作表属性的语法是什么?如果我知道如何使用它,我可能会做一些实验。已经编程21年了,但是只有3天使用Excel钩子。根据使用Excel界面的规则和建议,我最终使用了OOXML SDK,所以这是从做这件事的记忆中得到的。也就是说,我想我发现了你的问题。您似乎有两个工作簿定义—一个是属性,另一个是局部变量,但由于代码格式的原因,我无法确定。试着清理一下你的代码?我看到了你所说的冲突,但似乎无法消除它。我相信我的错误在于我如何引用工作簿和工作表变量,这些变量是全局变量。@Tawnos找到了我的问题所在。你提到的冲突是它的症状/副产品。我需要在我的Excel类中放入一个子程序方法来修改工作表。在课外这样做是行不通的。当我得到答案后,我会发布我自己的答案P