[英]C# Console App Writing To Excel Is Returning Empty Cells
我被這個問題困擾了一段時間,似乎無法找到解決方法。 我已經閱讀了許多有關Stack Overflow的文章,但似乎沒有任何問題可以回答我的問題。 我遵循的教程都給出了不同的解決方案,但似乎都沒有用。
我正在嘗試將數據表中的DataTable
寫入Excel電子表格。 我正在使用Microsoft.Office.Interop.Excel
程序包,並且確實在具有管理員權限的PC上安裝了Excel。
在控制台應用程序的頂部,我有以下內容:
using Microsoft.Office.Interop.Excel;
我正在使用以下代碼創建excel電子表格,並在dt
是DataTable
地方填充它:
var excel = new Application();
excel.Visible = false;
excel.DisplayAlerts = false;
var workBook = (Workbook)excel.Workbooks.Add(Type.Missing);
var workSheet = (Worksheet)workBook.ActiveSheet;
workSheet.Name = "Transformed Table";
for(int row = 0; row < dt.Rows.Count; row++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
workSheet.Cells[row + 2, i + 1] = dt.Rows[row][i].ToString();
}
}
workBook.SaveAs("C:\\Users\\******\\Downloads\\test-file.xlsx");
workBook.Close();
excel.Quit();
最終結果是一張空白紙。
基於這篇文章中的建議: 如何將DataTable導出到Excel我能夠使用以下代碼來生成滿足我需要的csv文件:
var dtLines = new List<string>();
string[] columnNames = dt.Columns
.Cast<DataColumn>()
.Select(column => column.ColumnName)
.ToArray();
var header = string.Join(",", columnNames.Select(name => $"\"{name}\""));
dtLines.Add(header);
var valueLines = dt.AsEnumerable()
.Select(row => string.Join(",", row.ItemArray.Select(val => $"\"{val}\"")));
dtLines.AddRange(valueLines);
File.WriteAllLines("excel.csv", dtLines);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.