在C#2008下,想从EXCEL模板中取得CHART,但是用下记代码总是报错。
Excel.Application app = new Excel.Application();
Excel.Workbook tworkbook;
Object missing = System.Reflection.Missing.Value;
app.Workbooks.Add(missing);
//调用模板
tworkbook = app.Workbooks.Open(mode.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
//在这里出错,跟踪是发现app.Charts的Count为空,但是在模板中已定义好了一个Graph了。
Excel.Chart xlChart = (Excel.Chart)app.Charts.get_Item(1);
使用的是 using Excel = Microsoft.Office.Interop.Excel;//引用的版本是11.0
如有更好的方法请赐教。
为什么取不到呢,请各位指教。
Excel.Application app = new Excel.Application();
Excel.Workbook tworkbook;
Object missing = System.Reflection.Missing.Value;
app.Workbooks.Add(missing);
//调用模板
tworkbook = app.Workbooks.Open(mode.FullName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
//在这里出错,跟踪是发现app.Charts的Count为空,但是在模板中已定义好了一个Graph了。
Excel.Chart xlChart = (Excel.Chart)app.Charts.get_Item(1);
使用的是 using Excel = Microsoft.Office.Interop.Excel;//引用的版本是11.0
如有更好的方法请赐教。
为什么取不到呢,请各位指教。
Excel.Application myExcel = null;
Excel.Workbook myBook = null;
Excel.Worksheet mySheet;
object m_objOpt = System.Reflection.Missing.Value;
DataTable dt;
try
{
myExcel = new Excel.ApplicationClass();
myExcel.Application.Workbooks.Add(true);
myExcel.Application.Visible = true;
myBook = myExcel.Workbooks[1];
mySheet = (Excel.Worksheet)myBook.ActiveSheet;
for (int i = 0; i < (cEndTime.Year - cStartTime.Year) * 12 + cEndTime.Month - cStartTime.Month + 1; i++)
{
((Excel.Range)mySheet.Columns["A:"+(Char)('A' + i) , m_objOpt]).ColumnWidth = 18;
}
Excel.Chart mycChart = (Excel.Chart)myBook.Charts.Add(m_objOpt, m_objOpt, 1, m_objOpt);
mycChart.SetSourceData(mySheet.get_Range(string.Format("A{0}", 2),
string.Format("{0}{1}", indexChar, cResultDS.Tables.Count +2)), Excel.XlRowCol.xlRows);
mycChart.ChartType = Excel.XlChartType.xl3DColumnStacked;
mycChart.Location(Excel.XlChartLocation.xlLocationAsObject, mySheet.Name);
mySheet.Shapes.Item(1).Left = 5;
mySheet.Shapes.Item(1).Top = float.Parse(mySheet.get_Range(mySheet.Cells[1, 1], mySheet.Cells[ cResultDS.Tables.Count +3, 1]).Height.ToString());
我总是取不到,这是为什么呢