0

我有将 .CSV 文件转换为 .XLSX 文件的代码。转换进行得很顺利,但是 WorkBook.SaveAs(@"file.xslx") 方法似乎只将文件保存到 C:\Users[MyName]\Documents\file.xlsx。当我使用 Excel.Application.GetSaveAsFileName() 时,它默认为 C:\Users[MyName]\Documents 并带有“另存为”对话框。

此外,设置 Excel.Application.DefaultFilePath 似乎没有帮助,除非我明确声明 F:......

我有一个相对工作目录集,从中读取 a.csv:

 using Excel = Microsoft.Office.Interop.Excel;


        StreamReader a = new StreamReader(@"a.csv");
        var CSVContent = new List<string[]>();
        Excel.Application excel = new Excel.Application();
        excel.DefaultFilePath = @"Output\";   //doesn't do anything
        Excel.Workbook workBook = excel.Workbooks.Add();
        Excel.Worksheet sheet = workBook.ActiveSheet;

        while (!a.EndOfStream)
        {
            string read = a.ReadLine();
            CSVContent.Add(read.Split(','));
        }

        for (int i = 0; i < CSVContent.Count; i++)  //write List contents to xlsx Line by Line
        {
            string[] csvLine = CSVContent[i];
            for (int j = 0; j < csvLine.Length; j++)
            {
                sheet.Cells[i + 1, j + 1] = csvLine[j]; //Cells begin at 1 in Excel
            }
        }

        var b = excel.GetSaveAsFilename("a.xlsx");

        workBook.SaveAs(b);
        workBook.Close();

如何让 workbook.SaveAs() 保存到解决方案的相关工作目录中?

4

1 回答 1

1

依赖相对路径往往是有问题的。如果要将其保存到应用程序的当前目录,请使用Environment.CurrentDirectory,即:

var b = Environment.CurrentDirectory + @"\a.xlsx";
于 2013-09-04T21:57:25.153 回答