问题描述
我要转换为制表符分隔的多个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 (将#修改为@)