将多个Excel工作表读入单个制表符分隔的文本文件中

问题描述

我要转换为制表符分隔的多个xls和xlsx文件。下面的代码在第一张纸中读取的次数等于张数。也就是说,例如,如果文件有三个工作表,则第一个工作表将被打印到文件中3次,而每个工作表将被打印一次。

有什么想法吗?

                    Microsoft.Office.Interop.Excel.Workbook book = appTwo.Workbooks.Open(strfileName);
                    int numSheet = book.Worksheets.Count;
                    List<Microsoft.Office.Interop.Excel.Worksheet> sheets = new List<Microsoft.Office.Interop.Excel.Worksheet>();
                    foreach (Microsoft.Office.Interop.Excel.Worksheet sheet in book.Worksheets)
                    {
                        int numberOfSheets = 0;
                        System.Data.OleDb.OleDbCommand objCommand = new System.Data.OleDb.OleDbCommand("Select * From [" + dR["TABLE_NAME"].ToString() + "]",Connection1);
                        System.Data.OleDb.OleDbDataAdapter objAdapter = new System.Data.OleDb.OleDbDataAdapter();
                        objAdapter.SelectCommand = objCommand;
                        DataSet ds = new DataSet();
                        objAdapter.Fill(ds);
                        DataRow dataRow = ds.Tables[0].Rows[0];
                        if (dR["TABLE_NAME"].ToString().StartsWith("Sheet"))
                        {
                            numberOfSheets++;
                        }

                        for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
                        {
                            for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                            {
                                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i].ItemArray[j].ToString()))
                                {
                                    swOutput.Write(ds.Tables[0].Rows[i].ItemArray[j].ToString());

                                    if (j != ds.Tables[0].Columns.Count - 1)
                                    {
                                        swOutput.Write('\t');
                                    }

                                }```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)