繁体   English   中英

使用 C# 在同一位置获取和保存特定的 Excel 文件

[英]Get and Save particular Excel file in same location using C#

我正在使用 Asp.Net MVC 应用程序、Visual Studio 2013、SQL Server 数据库

我系统的本地驱动器中有一个特定位置,即 c:/Files/Exim_Files/ ,其中有很多 excel(.xlsx) 文件。 我想从该位置获取特定文件并以相同/不同名称以编程方式将其保存(不弹出保存)在同一位置。 保存excel数据时不应该丢失,文件应该保持原样,只是我需要再次保存/另存为。

我怎样才能达到这个要求?

请注意,我正在使用虚拟机并在虚拟机内部:未安装 Microsoft Office。 因此,代码必须在机器中没有安装 Microsoft Office 的情况下才能工作。 我只能在我的主机上使用 Microsoft Office。

编辑

在下面的代码中,我使用 Aspose.Cells 将 Excel 文件从一个位置保存到另一个位置。

我从数组“l_strFileUploadPath”中的 sharedLocation 获取特定文件,然后检查我从用户获取的文件是否存在于共享位置,然后我想将该文件保存/另存为不同的位置(在“字符串 str”中定义) ) 以及整个数据(比如我想在将 Excel 保存在不同位置的同时导入数据)。

我面临的问题是,保存在 C: 驱动器中的文件没有保存 Excel 中存在的数据。 似乎是在 c: 驱动器中创建一个新的 excel 文件,同名 (x-TECHNICAL_DIT_BUDV01_RV124_R01_2015_Test.xlsx) 有 2 张纸。 1 是“表 1”,另一个是“评估警告”表。

根据我的代码,如何删除“评估警告”表以及将确切文件(以及数据)从共享驱动器保存到 c: 驱动器的方法是什么。

这是第一次使用 Aspose.Cells 将文件从一个位置获取并保存/另存为另一个位置。

protected void getFileAndSave()
{
    string[] l_strFileUploadPath = Directory.GetFiles("//181.184.11.435/share//Temp/New folder");

    foreach (var filename in l_strFileUploadPath)
    {
            string fileName = Path.GetFileName(filename);
            string p_filename = "x-TECHNICAL_DIT_Test.xlsx"; //this is the file I am getting from user

            if (fileName == p_filename)
            {
                //-- Using Aspose.Cells
                    Workbook wb = new Workbook();

                    Worksheet worksheet = wb.Worksheets["Sheet1"];
                    worksheet.Name = "Technical Data";

                    //Save workbook with export cell as true
                    OoxmlSaveOptions opts = new OoxmlSaveOptions();
                    opts.ExportCellName = true;
                    wb.Save(str + file, opts);

            }
    }
}

对我来说,您似乎只想复制文件。

看看File.Copy()

File.Copy(@"c:\excel.xsl", @"c:\other\excel.xsl");

编辑评论:

我认为很难更改 app.xml 元数据,而不仅仅是手动查看在保存/另存为期间所做的更改,然后尝试了解如何复制此行为并在该文件中以编程方式更改它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM