internal void UpdateCoeficients(string sheetName, double[] newCoeficients) { wbView.GetLock(); try { worksheet = (IWorksheet)workbook.Sheets[sheetName]; IValues values = (IValues)worksheet; for (int rowIndex = 0; rowIndex < worksheet.UsedRange.RowCount; rowIndex++) { if (values[rowIndex, 0].Text == "Coefficients") { for (int j = 0; j < newCoeficients.Length; j++) { values.SetNumber(rowIndex, j + 1, newCoeficients[j]); } break; } } //workbook.SaveAs(fileName, FileFormat.CSV); } finally { wbView.ReleaseLock(); } }
static double CreateWorkbook(string filename, int rows, int cols) { IWorkbook workbook = Factory.GetWorkbook(); IWorksheet worksheet = workbook.Worksheets[0]; IValues values = (IValues)worksheet; double sum = 0.0; Random rand = new Random(); // Put labels in the first row. foreach (IRange cell in worksheet.Cells[0, 0, 0, cols - 1]) { cell.Value = "Cell-" + cell.Address; } // Using IRange and foreach be less code, // but we'll do it the fast way. for (int row = 1; row <= rows; row++) { for (int col = 0; col < cols; col++) { double number = rand.NextDouble(); sum += number; values.SetNumber(row, col, number); } } workbook.SaveAs(filename, FileFormat.Excel8); return(sum); }
/// <summary> /// Sets value in spreadsheet, also updates underlying DataTable /// </summary> /// <param name="rowIndex"></param> /// <param name="columnIndex"></param> /// <param name="val"></param> public void SetCellValue(int rowIndex, int columnIndex, double val) { IValues values = (IValues)worksheet; m_dataTable.Rows[rowIndex][columnIndex] = val; values.SetNumber(rowIndex + 1, columnIndex, val); //worksheet.Select(); }
static void WriteRows(int rows, int cols, bool openXML) { Stopwatch timer = Stopwatch.StartNew(); IWorkbook workbook = Factory.GetWorkbook(); IWorksheet worksheet = workbook.Worksheets[0]; IValues values = (IValues)worksheet; for (int row = 0; row < rows; row++) { values.SetText(row, 0, "Row " + (row + 1)); for (int col = 1; col < cols; col++) { values.SetNumber(row, col, row * cols + col); } } string filename = @"c:\tmp\WriteRows" + (openXML ? ".xlsx" : ".xls"); FileFormat fileFormat = openXML ? FileFormat.OpenXMLWorkbook : FileFormat.Excel8; workbook.SaveAs(filename, fileFormat); Console.WriteLine("Created {0} with {1}x{2} rows / cols in {3} seconds", filename, rows, cols, timer.Elapsed.TotalSeconds); }