我有将 .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() 保存到解决方案的相关工作目录中?