2017-04-14 74 views
1

这是我的第一个AddIn excel,并且我在使用分隔符(“|”)导出文本文件中的excel文件时遇到了问题。 我想导出excel的文件在相同的路径,扩展名为“.txt”,我想用特定字符(“|”)分隔excel的列。C#AddIn Excel:导出带分隔符的文本文件中的xls文件

我创建功能区上的一个按钮:

private void exportSave_Click(object sender, RibbonControlEventArgs e) 
    { 
     int lastColumns;   
     lastColumns = usedRange.Columns.Count; 
     int endCol = lastColumns; 

     Microsoft.Office.Interop.Excel.Worksheet xlSheet = Globals.VATTools.Application.ActiveSheet; 
     Microsoft.Office.Interop.Excel.Range usedRange = xlSheet.UsedRange; 

     // Save file in .txt in the same path 
     string path = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); 
     xlSheet.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlTextWindows); 
    } 

我不知道格式“xlTextWindows”的。

我确定我的专栏,但我不知道如何将其导出为.txt

由于之前加列之间的特定字符!

回答

2

试试下面的代码:

public static void ExportToPipe(RibbonControlEventArgs e) 
{ 
    string ExportName = @"D:\Pipe.txt"; 
    Excel.Window window = e.Control.Context; 
    Excel.Worksheet sheet = ((Excel.Worksheet)window.Application.ActiveSheet); 
    Excel.Range last = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing); 

    int lastUsedRow = last.Row; 
    int lastUsedColumn = last.Column; 

    string output = ""; 

    for (int i = 1; i <= lastUsedRow; i++) 
    { 
     for (int j = 1; j <= lastUsedColumn; j++) 
     { 
      if (sheet.Cells[i, j].Value != null) 
      { 
       output += sheet.Cells[i, j].Value.ToString();       
      } 
      output += "|"; 
     } 
     output += Environment.NewLine; 
    } 

    FileStream fs = new FileStream(ExportName, FileMode.Create, FileAccess.Write); 
    StreamWriter writer = new StreamWriter(fs); 
    writer.Write(output); 
    writer.Close(); 
} 
+0

谢谢,这是完美的! – user2814368

相关问题