将CSV转换为Excel

kxe2p93d  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(125)

我正在尝试转换一个csv文件到excel
我有这个代码

string targetFileName = GenerateTargetFileName(sourceFileName);
                string sourcePath = Path.Combine(sourceloc, sourceFileName);
                string targetPath = Path.Combine(targetloc, targetFileName);

               
                Excel.Application xl = new Excel.Application();
                Excel.Workbook wb = xl.Workbooks.Open(sourcePath);
                Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets.get_Item(1);
                Excel.Range used = ws.UsedRange;
                used.EntireColumn.AutoFit();
                wb.SaveAs(targetPath, 51);
                wb.Close();
                xl.Quit();

                //sylvan data way - file is corrupted and wont open - but saves
                //var csvreader = CsvDataReader.Create(sourcePath);
                //var excelwrite = ExcelDataWriter.Create(targetPath);
                //excelwrite.Write(csvreader);

字符串
它在本地机器上工作正常,但我需要在没有excel的服务器上运行它-我相信interop不会在这上面工作,所以我正在尝试
//sylvana数据方式-在上面的代码中-这会生成一个文件,但文件每次都较小且损坏,无法打开。
任何建议如何让它在没有Excel的服务器上工作
尝试以上两种方法都生成一个文件- 1工程在本地机器上,但不工作在服务器上,由于互操作,另一种方法工程在两个,但文件已损坏

weylhg0b

weylhg0b1#

使用Sylvan ExcelDataWriter时,您必须处置写入器。文档的最终化发生在处置过程中,如果没有它,您将最终得到一个部分写入的文件,正如您所看到的。
我是这个库的作者,是的,文档是最少的,但我觉得这一点在示例代码中做得很清楚:

// *critical* to dispose (using) ExcelDataWriter.
using var edw = ExcelDataWriter.Create("data.xlsx");

字符串

相关问题