从 Excel 投射 CSOM (C#) 请求以执行插入 SharePoint Online

Cast a CSOM (C#) request from Excel to perform an insert into SharePoint Online

下午好,

我在 VBA 中有一个“程序”必须写入 SharePoint Online 列表。

问题:

我曾经通过将方向性连接到基础数据库(通过 ADODB 连接)将数据从 excel 文件(通过 VBA)插入 SharePoint 2013 列表。

对于 SharePoint Online,这是不可能的,事实上,我不得不通过使用 CSOM (C#) 库提出一个不同的解决方案。

经过一周的努力,完成了一个满足我所有需求的完美插入……现在我被卡住了。

目标:

我需要一种方法,让 VBA 代码可以使用我通过 VBA => Full Process/idea explained

通信的参数转换我的插入 (C#)

我找到了一些参考资料,但对我来说很难在我的代码中实现它。

这是我当前的代码:

using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
using (ClientContext clientContext = new ClientContext("Sharepoint list URL"))
{
string Uname = "Username";
string password = "Password";
SecureString Securepasseord = GetSecureString(password);
clientContext.Credentials = new SharePointOnlineCredentials(Uname, Securepasseord); clientContext.ExecuteQuery();

clientContext.ExecuteQuery();

List oList = clientContext.Web.Lists.GetByTitle("Target List Name");

//clientContext.LoadQuery();
clientContext.ExecuteQuery();

ListItemCreationInformation listCreationInformation = new ListItemCreationInformation();
ListItem oListItem = oList.AddItem(listCreationInformation);

oListItem["Client"] = "John";
oListItem["City"] = "New York";
oListItem["Company"] = "ZXY";



oListItem.Update();
clientContext.ExecuteQuery();
}
}
private static SecureString GetSecureString(String Password)
{
SecureString oSecurePassword = new SecureString(); foreach (Char c in Password.ToCharArray()) { oSecurePassword.AppendChar(c); }
return oSecurePassword;
}
}
}

我想过创建一个JSON对象来link这两个,但是如果它同时管理多个请求那就麻烦了。我想在这些系统之间保持直接连接。

预先感谢您的回答。

此致, 丹妮尔

编辑: 对于这个项目,由于内部政策,我不能使用 OneDrive/Excel 在线解决方案。我需要以这种方式将数据引入 SharePoint,然后我可以开始使用 Power Automate 来管理所有 notifications/approvals 流。

最后,我使用Main(string [] args)解决了问题。我将通过命令行传递数据。简单、直接、快速和可靠。

例如:

Client = args[0];

City   = args[1];

Company= args[2];

....................


oListItem["Client"] = Client;

oListItem["City"] = City;

oListItem["Company"] = Company;