簡體   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