簡體   English   中英

C#Excel生成-使用最后一個單元格作為正確數據的第一個單元格進行范圍復制(不良行為)

[英]C# Excel Generation - Range Copy (undesired behavior) using last cell as first cell of correct data

List<someClass> aList = new List<someClass>();

...

XLWorkbook workbook = new XLWorkbook();
IXLWorksheet worksheet = workbook.AddWorksheet("Data");
worksheet.Hide();
workbook.CalculateMode = XLCalculateMode.Manual;

var data = aList.ToArray();
var firstCell = worksheet.Cell(1, 1);
var lastCell = worksheet.Cell(numRows, numColumns); // numRows = 150, numColumns = 8
var writeRange = worksheet.Range(firstCell, lastCell); //firstCell = A1, LastCell = H150
writeRange.Value = data;

workbook.SaveAs(mySavePath);

這部分代碼僅用於將aList中的數據復制到新的excel文檔中,而不是從單元格A1(1,1)開始到單元格H150結束,而是將值從單元格1復制到A1之間的所有單元格中和H299,應該是從1-150行到HO列的第1行中的行值,最后是H150-O299中正確分組的數據。

基本上,我的數據從該范圍的偏移量開始,而不是填充該范圍,並且該范圍上下的所有內容都是默認復制(垃圾)數據。 someClass只是一個公共類,其中包含用於整數和字符串的公共字段。

誰能告訴我為什么會這樣以及如何糾正呢?

作為解決方案,我發現在第一個和最后一個單元格中使用相同的索引將正確輸入我的數據,但是為什么Range不能按預期的方式工作仍未得到解答。

var firstCell = worksheet.Cell(1, 1);
var writeRange = worksheet.Range(firstCell, firstCell); //firstCell = A1, LastCell = H150

這將按預期工作。 由於不必要,我已經完全刪除了lastCell。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM