我正在嘗試獲取在 Visual Studio WPF C# 中創建的表單以提交到新的 excel 作業簿,該表單將保存到共享網路驅動器上。我做了一些挖掘,試圖找到最好的解決方案,我遇到了 NPOI,但與我需要做的相比,所有的解決方案似乎都非常復雜。是否有一些簡單的資源可供我參考以簡單地創建作業簿并將資料插入特定單元格 - 然后保存?
我在 NuGet 中看到的兩個相關包是 DotNetCore.NPOI 和 NPOI,我應該使用哪個包?
到目前為止我嘗試過的是:
private void Button_Click(object sender, RoutedEventArgs e)
{
using (var fs = new FileStream("Result12345.xlsx", FileMode.Create, FileAccess.Write))
{
IWorkbook workbook = new XSSFWorkbook();
ISheet excelSheet = workbook.CreateSheet("Sheet1");
workbook.Write(fs);
MessageBox.Show("Form submitted successfully");
}
}
這被輸出到: Project Folder \bin\Debug\net6.0-windows 并且它似乎創建了作業簿并保存(假設我需要做的就是將檔案流中的網路驅動器的路徑放在簡單)但我如何將資料插入到特定于單元格的單元格中?
uj5u.com熱心網友回復:
我已經通過互操作 COM 庫使用 Microsoft Excel,并且應該通過添加為參考直接在您的 WPF 應用程式中可用。
首先,在解決方案資源管理器中,打開參考,右鍵單擊并添加參考。

然后,選擇您現在或將來有興趣使用的 Office 庫,例如其他應用程式。

在任何代碼的頂部,您將添加“using”子句
using Microsoft.Office.Interop.Excel;
using System;
這是一個示例代碼片段,因此您可以控制任何活動的作業簿、作業表、回圈顯式行/列以及獲取給定單元格的文本。
public void tryingExcel()
{
var SomeSampleFile = @"C:\Users\Public\SomeExcelFile.xlsx";
//Start Excel and get Application object.
var XL = new Microsoft.Office.Interop.Excel.Application();
XL.DisplayAlerts = false;
XL.Workbooks.Add();
// _Workbook and _Worksheet are part of Microsoft.Office.Interop.Excel
// via "using" clause at top of code
_Workbook wb = XL.ActiveWorkbook;
wb.Sheets.Add();
_Worksheet ws = wb.ActiveSheet;
ws.Cells[2, 1] = "Date/Time:";
ws.Cells[2, 2] = DateTime.Now;
for (var ir = 4; ir < 10; ir )
ws.Cells[ir, 2] = "testing " ir;;
for (var ir = 4; ir < 10; ir )
ws.Cells[ir, 4] = ws.Cells[ir, 2].Text.Trim();
XL.ActiveWorkbook.SaveAs(SomeSampleFile, XlFileFormat.xlOpenXMLWorkbook,
Type.Missing, Type.Missing, false, false,
XlSaveAsAccessMode.xlNoChange,
XlSaveConflictResolution.xlLocalSessionChanges,
Type.Missing, Type.Missing, Type.Missing, false);
XL.Quit();
}
uj5u.com熱心網友回復:
我是這樣想出來的:
private void Button_Click(object sender, RoutedEventArgs e)
{
using (var fs = new FileStream(@"\\ipaddress\sharename\Result12345.xlsx", FileMode.Create, FileAccess.Write))
{
IWorkbook workbook = new XSSFWorkbook();
ISheet excelSheet = workbook.CreateSheet("Sheet1");
//define cell to insert into
var cellTest = excelSheet.CreateRow(0).CreateCell(0);
//set cell value
cellTest.SetCellValue("Hello?");
//save the excel sheet
workbook.Write(fs);
MessageBox.Show("Form submitted successfully");
}
}
我想我只是不明白為什么當它們已經存在時我必須創建一個行/單元格。而不是設定類似的東西Cell(0,1).value = "Something"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/376927.html
下一篇:WPF將顏色系結到橢圓并自動更新
