Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用epplus将excel另存为电子表格xml 2003_C#_Excel_Xml_Epplus - Fatal编程技术网

C# 使用epplus将excel另存为电子表格xml 2003

C# 使用epplus将excel另存为电子表格xml 2003,c#,excel,xml,epplus,C#,Excel,Xml,Epplus,我和EPPlus一起工作 但我对文件类型有一个问题,因为在我工作的地方,我们使用的管理系统只将电子表格XML 2003读取为excel文件 我尝试将文档另存为XML,但没有获得电子表格XML 2003 excel格式 var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "CodigoInteligente", "Articulos.xml"); var archivo

我和EPPlus一起工作

但我对文件类型有一个问题,因为在我工作的地方,我们使用的管理系统只将
电子表格XML 2003
读取为excel文件

我尝试将文档另存为XML,但没有获得电子表格XML 2003 excel格式

var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "CodigoInteligente", "Articulos.xml");
var archivo = new FileInfo(path);

如何使用电子表格xml 2003格式和epplus生成Excel?或者我可以使用哪个图书馆

我不想使用此解决方案,因为它使用的是Microsoft.Office.Interop,而且并非所有计算机都安装了excel,但是,我回答了这个问题,因为在我的情况下,它可能会有用

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook book = null;
bool status = false;
try 
    { 
    var originalPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "CodigoInteligente" , "Originales" , "Articulos.xls");
    var oldFile = new FileInfo(originalPath);
    if (!oldFile.Exists)
        {
            return false;
        }
    var newPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "CodigoInteligente", "Articulos.xls");
    var newFile = new FileInfo(newPath);
    if (newFile.Exists)
        {
        if (IsFileLocked(newFile))
            {
                return false;
            }
        newFile.Delete();
        }
    book = xlApp.Workbooks.Open(originalPath);
    book.SaveAs(newPath, Microsoft.Office.Interop.Excel.XlFileFormat.xlXMLSpreadsheet);
    status = true;
    }
    catch(Exception ex)
    {
        System.Windows.Forms.MessageBox.Show("Hubo un error");
        Logs.agregarLog(ex);
        return false;
    }
    finally
        {                
        book.Close(false);
        xlApp.Quit();
        System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
        }
return status;

你是说xlx吗?Xml与Excel有很大的不同,我认为EPPLus不会编写这种格式。但是如果我看一下,我怀疑您可以先将文件保存为XLSX,然后在
xl\worksheets\Sheet1.xml
(请记住,XLSX只是一个zip文件)读取该文件,然后应用XSLT转换。不是小事,但如果没有其他值得尝试的东西,@jdwengexcel有一个旧的xmlformat@rene您介意xslt转换吗?我不明白,谢谢@搜心:不是那篇文章的翻版。此问题专门询问如何使用EPPlus保存为特定的Excel版本文件,这与您作为副本(两次)使用的帖子所问的问题不同。