这是我第一次来这里,我对c#不太熟悉。 因此,为了练习,我想为UiPath创建一个自定义活动,因此我使用类库(.NET Framework),我的自定义操作基于创建一个工作簿excel并将其保存。
我尝试了但没用,我真的不知道该怎么办。
该文件是通用文件,我在其中添加:
public InArgument<string> NameFile { get; set; }
public InArgument<string> PathWorkbookInput { get; set; }
我需要一个简单的文件,供消费者决定名称和路径。
答案 0 :(得分:0)
首先,我不得不提一下,如果这是您第一次尝试使用c#,那么开始使用类库并不是一个好选择,因为您将无法单独运行该类,并且需要一个.exe。调用类库.dll文件的文件。 尝试从Windows窗体应用程序甚至WPF窗体开始
第二秒,您的数据存储在应用程序中的什么位置? SQL数据库?数组?一个列表?或字典?
第三,为了让用户选择要存储的Excel文件的名称和位置,您将需要创建“ FileSaveDialoge”的实例以从用户那里获取路径和文件名,然后您就可以执行任何操作您想要的路径
尝试使用
“ Microsoft Office Interop Excel” NuGet程序包
,并使用以下代码段使用此软件包:
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();
}
答案 1 :(得分:0)
谢谢您的回答,这就是我要做的 我的数据存储在数组
谢谢
公共类WriteExecutiveSummary:CodeActivity {
SAVE OUTFILE ='Newdata.sav' /KEEP !varlist.
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);
}