Excel XML导入问题 [英] Excel XML Import Problem

查看:102
本文介绍了Excel XML导入问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!

我在这个问题上停留了几天,但没有收到错误消息.

我必须要有数据集.每个数据集都保存一个数据表.所以我有两个保存非常简单数据的数据表.

现在,我想在我的Excel解决方案的sheet1上导入table1,在sheet2上导入table2.但是它总是在sheet1上导入table1和table2并将它们合并.

有人可以给我小费还是可以告诉我如何在两张纸上导入两个表?!?!?

提前谢谢.

向詹姆斯问好

Hey folks!

I stuck on this problem now for a few days and i don''t get the error.

I have to datasets. Each of the dataset hold one datatable. So i have two datatable which holds very simple data.

Now i want to import table1 on sheet1 and table2 on sheet2, of my excel solution. But it always import table1 and table2 on sheet1 and merge them.

Can anybody give me a tip or can tell me how to import two tables on two sheets?!?!?

Thanks in advance.

Greets James

<br />
<pre>using System;<br />
using System.Collections.Generic;<br />
using System.Data;<br />
using System.Linq;<br />
using System.Text;<br />
using System.Windows.Forms;<br />
using System.Xml.Linq;<br />
using Microsoft.Office.Tools.Excel;<br />
using Microsoft.VisualStudio.Tools.Applications.Runtime;<br />
using Excel = Microsoft.Office.Interop.Excel;<br />
using Office = Microsoft.Office.Core;<br />
namespace TestExcelWorkbook<br />
{<br />
    public partial class ThisWorkbook<br />
    {<br />
        private DataSet Set1 = new DataSet("Set1");<br />
        public System.Data.DataTable Table1 { get; set; }<br />
        private DataSet Set2 = new DataSet("Set2");<br />
        public System.Data.DataTable Table2 { get; set; }<br />
        private void ThisWorkbook_Startup(object sender, System.EventArgs e)<br />
        {<br />
            Table1 = Set1.Tables.Add("StreamUsageData");<br />
            Table1.Columns.Add(new DataColumn("Field1", typeof(string)));<br />
            Table1.Columns.Add(new DataColumn("Field2", typeof(string)));<br />
            Table2 = Set2.Tables.Add("StreamsPerClient");<br />
            Table2.Columns.Add(new DataColumn("Field1", typeof(string)));<br />
            Table2.Columns.Add(new DataColumn("Field2", typeof(string)));<br />
            DataRow dr = null;<br />
            for (int i = 0; i < 100; i++)<br />
            {<br />
                dr = Table1.NewRow();<br />
                dr[0] = "- " + i.ToString();<br />
                dr[1] = "Table 1 - " + i.ToString();<br />
                Table1.Rows.Add(dr);<br />
            }<br />
            for (int i = 0; i < 100; i++)<br />
            {<br />
                dr = Table1.NewRow();<br />
                dr[0] = "-- " + i.ToString();<br />
                dr[1] = "Table 2 - " + i.ToString();<br />
                Table1.Rows.Add(dr);<br />
            }<br />
            Excel.XmlMap map1 = this.XmlMaps.Add(Set1.GetXmlSchema(), Set1.DataSetName);<br />
            Excel.XmlMap map2 = this.XmlMaps.Add(Set2.GetXmlSchema(), Set2.DataSetName);<br />
            //define range for stream usage<br />
            Excel.Range range1 = Globals.Tabelle1.Range["A1", missing];<br />
            //define range for streams per client<br />
            Excel.Range range2 = Globals.Tabelle2.Range["A1", missing];<br />
            this.XmlImportXml(Set1.GetXml(), out map1, true, range1);<br />
            this.XmlImportXml(Set2.GetXml(), out map2, true, range2);<br />
        }<br />
        private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)<br />
        {<br />
        }<br />
        #region VSTO Designer generated code<br />
        /// <summary><br />
        /// Required method for Designer support - do not modify<br />
        /// the contents of this method with the code editor.<br />
        /// </summary><br />
        private void InternalStartup()<br />
        {<br />
            this.Startup += new System.EventHandler(ThisWorkbook_Startup);<br />
            this.Shutdown += new System.EventHandler(ThisWorkbook_Shutdown);<br />
        }<br />
        #endregion<br />
    }<br />
}</pre>

推荐答案

按照此 [
Do as described in this tip n'' trick[^] for each sheet.

Vote if this helps you.


找到了解决方案!

只需先在想要导入数据的地方激活工作表即可.就是这样!

Found the solution!

Just have to activate the sheet first where you wanna import the data... That''s it!

//define range for stream usage<br />
Globals.Tabelle1.Activate();<br />
Excel.Range rangeStreamUsage = Globals.Tabelle1.Range["A1", missing];<br />
this.XmlImportXml(StreamUsageDataSet.GetXml(), out xmlmStreamUsage, true, rangeStreamUsage);<br />
//define range for streams per client<br />
Globals.Tabelle3.Activate();<br />
Excel.Range rangeStreamsPerClient = Globals.Tabelle3.Range["A1", missing];<br />
this.XmlImportXml(StreamsPerClientDataSet.GetXml(), out xmlmStreamsPerClient, true, rangeStreamsPerClient


这篇关于Excel XML导入问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆