我需要使用C#代码创建“文档级自定义”(而不是Excel加载项!)
我创建了一个Visual Studio Office Excel 2010工作簿项目类型。这将在我的项目中创建一个包含3张工作簿的工作簿。我在其中一张表中添加了一些“配置”信息。
我需要以编程方式访问此配置信息(Sheet1
包含button
- 按下该按钮
但不知怎的,我找不到怎么做......
如果我尝试初始化Sheet1
类,编译器需要两个参数 - Microsoft.Office.Tools.Excel.Factory
和IServiceProvider
,但我从一个放在Sheet2上的按钮调用它 - 所以它是 之后> Excel工作簿已经打开...不应该自动初始化Sheet1吗?
那么,如何从我的VSTO项目的c#代码中访问Sheet1
?
Please see project sample screencast here
我在Sheet2上有一个按钮,应该
我找不到如何从Sheet1中读取数据的方法......
答案 0 :(得分:3)
似乎没有很多开发人员(至少在stackoverflow)可以使用Visual Studio / VSTO中的Excel工作簿),但这仍然是我如何使这些基本工作 - 如果这有用的话给别人
由于我的代码在Worksheet的* .cs文件中,我发现我可以这样访问项目的xlsx文件:
var excel = (Excel.Application)this.Application;
var xlbook = (Excel.Workbook)excel.ActiveWorkbook;
var worksheets = xlbook.Worksheets;
var sheet = (Excel.Worksheet)worksheets["Sheet3"];
int row = 2;//1st row for column titles
while (!string.IsNullOrEmpty(((Excel.Range)sheet.Cells[row, 2]).Value))
{
var weight = ((Excel.Range)sheet.Cells[row, 3]).Value;
row++;
}
关于从c#代码中的Excel工作表处理数据的一些额外的事情,我发现(也许这对某人有帮助):
var weight =(((Excel.Range)sheet.Cells [row,3])。Value);
if (weight is double)
{
product.Weight = ((double)((Excel.Range)sheet.Cells[row, 3]).Value).ToString();
}
else if (weight is string)
{
product.Weight = ((Excel.Range)sheet.Cells[row, 3]).Value;
}