1
我有以下代碼:列表複製到的SpreadsheetGear Irange
using (CPASEntities ctx = new CPASEntities())
{
IWorksheet ws = wb.Worksheets[0];
ws.Name = "Summary";
var tsm = (from x in ctx.tblTimesheetMasters
where x.TSID == TSID
select new
{
TimesheetID = x.TSID,
Comments = x.TSComments,
Vendor = x.tblVendor.Vendor_Name,
StartDate = x.TSStartDate,
Author = x.TSAuthor,
Approver = x.TSApprover,
Override_Approver = x.TSOverrideApprover,
Status = x.tblTimesheetStatu.TSStatusDesc
}
).ToList();
SpreadsheetGear.IRange range = ws.Cells["A1"];
// I want to copy the entire tsm list to this range, including headings.
}
隨着評論的狀態,我希望把他們整個列表到WS工作起始於A1。如果使用不同的結構更容易,我會包含代碼。 FWIW,將只有一個條目... TSID是主鍵。如果這很重要,我當然可以使用.FirstorDefault()構造。我認爲這不重要。
該問題與範圍的定義無關。如果您使用我的定義(如圖所示)(並從SSG網站複製...),使用IRange.copyfromDatatable方法一切正常。我想避免從EF設置一個數據表,因爲這些結構是相似的,但看起來就像我必須做的。這比你提出的要容易得多(這當然會起作用....)謝謝。 – 2013-03-21 12:46:19
對,如果IRange有copyFromList方法,那將會很好。另一種方法是使用ToDataTable方法將列表轉換爲數據表,如下所述:http://stackoverflow.com/questions/564366/convert-generic-list-enumerable-to-datatable。但是,這種方法與我給出的答案類似。 – Daniel 2013-03-21 16:21:54
是的,我放棄了並使用了一個SQL源的DataTable。當我開始這個ASP.NET旅程時,我覺得我最好的策略是使用最新的技術,因爲在我漫長的學習過程中它們將成爲主流。那麼,學習曲線確實很長,但技術(EF)顯示出許多極端青春和有限接受的跡象。我學到了很多關於EF的知識,包括很多方法......大聲笑。謝謝你的幫助.... – 2013-03-21 20:04:37