Как создать файл Excel в C # с библиотекой классов (.NET Framework)? - PullRequest
0 голосов
/ 23 января 2019

это мой первый раз здесь, я не очень опытен с c #. Поэтому для практики я хотел бы создать настраиваемое действие для UiPath, поэтому я использую библиотеку классов (.NET Framework), мое настраиваемое действие основано на создании одной книги Excel и ее сохранении.

Я пытался, но не работает, я действительно не знал, что делать.

Файл является общим, где я добавляю:

public InArgument<string> NameFile { get; set; }
public InArgument<string> PathWorkbookInput { get; set; }

Мне нужен простой файл, в котором потребитель решает имя и путь.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Спасибо за ответ, это то, что я делаю Мои данные хранятся в массиве

Спасибо

открытый класс WriteExecutiveSummary: CodeActivity {

 public class WriteExecutiveSummary : CodeActivity 
    {  
        [Category("Input")]
        [RequiredArgument]
        public InArgument<string[]> Header { get; set; }

        [Category("Input")]
        [RequiredArgument]
        public InArgument<string> PathWorkbookInput { get; set; }

        [Category("Input")]
        [RequiredArgument]
        public InArgument<string> NomeFile { get; set; }

        [Category ("Input")]
        [RequiredArgument]
        public InArgument<string> NomeSheet { get; set; }

        [Category("Output")]
        public OutArgument<string> Output { get; set; }

        protected override void Execute(CodeActivityContext context)
        {
            Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            Excel.Workbook Nuovo = xlApp.Workbooks.Add();
            Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(PathWorkbookInput.Get(context));

            var nomeFile  = NomeFile.Get(context);
            var nomeSheet = NomeSheet.Get(context);

            Nuovo.SaveAs(System.IO.Directory.GetCurrentDirectory() + "\\" + NomeFile + NomeSheet, Excel.XlFileFormat.xlOpenXMLWorkbook);
    [Category("Input")]
    [RequiredArgument]
    public InArgument<string[]> Header { get; set; }

    [Category("Input")]
    [RequiredArgument]
    public InArgument<string> PathWorkbookInput { get; set; }

    [Category("Input")]
    [RequiredArgument]
    public InArgument<string> NomeFile { get; set; }

    [Category ("Input")]
    [RequiredArgument]
    public InArgument<string> NomeSheet { get; set; }

    [Category("Output")]
    public OutArgument<string> Output { get; set; }

    protected override void Execute(CodeActivityContext context)
    {
    Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
    Excel.Workbook Nuovo = xlApp.Workbooks.Add();
    Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(PathWorkbookInput.Get(context));

    var nomeFile  = NomeFile.Get(context);
    var nomeSheet = NomeSheet.Get(context);

}

0 голосов
/ 23 января 2019

Во-первых, я должен отметить, что если вы впервые пытаетесь использовать c #, библиотека классов не является хорошим выбором для начала, так как вы не сможете запустить класс в одиночку, и вам понадобится .exeфайл, который вызывает DLL-файл библиотеки классов.попробуйте запустить приложение формы Windows или даже форму WPF

секунды, где хранятся ваши данные в приложении?БД SQL?массив?список?или словарь?

в-третьих, чтобы пользователь мог выбрать имя и расположение файла Excel для хранения, вам нужно будет создать экземпляр «FileSaveDialoge», чтобы получить путь и имя файла от пользователя,тогда вы можете делать все, что вы хотите с путем

, попробуйте использовать

NuGet-пакет Microsoft Office Interop Excel

и использовать фрагментниже для работы с этим пакетом:

public void CreateExcel()
{

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
            // creating new WorkBook within Excel application  
            Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
            // creating new Excelsheet in workbook  
            Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
            // see the excel sheet behind the program  
            app.Visible = true;
            // get the reference of first sheet. By default its name is Sheet1.  
            // store its reference to worksheet  
            worksheet = workbook.Sheets["Sheet1"];
            worksheet = workbook.ActiveSheet;
            // changing the name of active sheet  
            worksheet.Name = "new sheet name";

            // storing Each row and column value to excel sheet  //for example from a grid view
            for (int i = 0; i < GridView.Rows.Count - 1; i++)
            {
                for (int j = 0; j < GridView.Columns.Count; j++)
                {
                    worksheet.Cells[i + 2, j + 1] = GridView.Rows[i].Cells[j].Value.ToString();
                }
            }
            // save the application  
            string path;
            SelectSavePath.ShowDialog();
            path = SelectSavePath.SelectedPath;
            if(path!=string.Empty)
            workbook.SaveAs(path+FileName+".xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            // Exit from the application  
            app.Quit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...