Tag: c#

如何在导出Excel文件时指定单元格格式为“文本”

我试图通过使用.ToString()将数据添加到数据表时导出Excel文件。 Excel文件单元格格式不是文本,而是General格式。 这是我的代码。 public static void CreateExcel(string filename,System.Data.DataTable table) { if (filename != "") { Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.DisplayAlerts = false; if (xlApp == null) { return; } Workbook xlWorkBook; Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1); int Row = table.Rows.Count; int Column = table.Columns.Count; for (int i […]

查询Excel电子表格

我有一个项目,我需要查询Excel电子表格。 基本上我需要读一个两列Excel电子表格到字典表中。 我有一个错误代码的数据库和每个代码的说明。 该项目需要Excel(Excel 2007 compatible .xlsx),因为用户希望通过编辑Excel电子表格来添加新的键/说明对。 我的想法是,我将得到一个错误代码的列表,我只是希望能够在工作表中显示一个错误代码和Excel电子表格的相关描述,或没有find任何描述的表格。 我想如果我可以得到表(这是不是很长)到一个字典表中,其余的将直接前进,但我甚至找不到一个起点使用当前版本的C#和4.5.2 .NET API。 我只需要打开工作表并将两列表读入字典表中,然后我就可以参加比赛了。 有人能让我开始正确的方向吗?

从列中获取不同的值

必须获取每列不同的数据,并使用Excel.interop存储到Dictionary(或数组)。 我已经尝试了下面的代码,但它不与Excel.interopalignment。 var excel = new ExcelQueryFactory("worksheetFileName"); var distinctNames = (from row in excel.WorkSheet() select row["ColB"]).Distinct(); 请提供Excel.Interop片段/代码以逐列获取不同的值并将其存储在数组中。

如何隐藏Excel中的行?

我有这个代码来隐藏某些行: private static readonly Double DISPLAYED_HIDDEN_CUTOFF_VAL = 0.01; private bool _hide; . . . _hide = racda.TotalItemPercentageOfItem < DISPLAYED_HIDDEN_CUTOFF_VAL; if (_hide) { var hiddenRange = _xlSheet.Range[_xlSheet.Cells[_curDescriptionTopRow, ITEMDESC_COL], _xlSheet.Cells[_curDescriptionTopRow, TOTALS_COL]]; hiddenRange.EntireRow.Hidden = true; } 代码到达时应该是,但它没有效果:这些行仍然可见。 我希望他们在电子表格上,但默认情况下不可见。 我怎么能做到这一点? UPDATE 这也没有工作: hiddenRange.Rows.Hidden = true; 实际上,这导致应用程序崩溃: hiddenRange.Hidden = true; 更新2 即使这些试图完成它的偷偷摸摸的方法也没有做任何事情: //hiddenRange.RowHeight = 0; <= did nothing hiddenRange.Rows.RowHeight = […]

修改Excel文件属性

我在本地磁盘上有一些Excel文件,我需要访问/修改数据:右键单击Excel文件 – >属性 – >更改“详细信息”选项卡下的“注释”: 我只需要访问这个属性,我也可以使用C#来改变它。 有没有人可以帮忙?

从Excel中读取logging并将其保存到SQL Server 2014

我的Excel表中有几列 – >工作,时间,备注在我的数据库'任务'中有一个表,其中有列 – >任务,小时,评论。 我必须通过ASP.Net页面从Excel文件读取数据,并将所有数据导入到SQL Server数据库。 我已经添加了file uploadExcel文件浏览和button事件来读取数据。 我看过这个代码: protected void btnUpload_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName); string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName); string FolderPath = ConfigurationManager.AppSettings["FolderPath"]; string FilePath = Server.MapPath(FolderPath + FileName); FileUpload1.SaveAs(FilePath); Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text); } } private void Import_To_Grid(string FilePath, string Extension, string isHDR) { string conStr […]

写入Excel单元格时出现exception

我有一个列表视图,我试图将数据保存到Excel工作簿的列表视图。 ws.Cells[row,col]行出现exception。 这是我的代码: using Excel = Microsoft.Office.Interop.Excel; … Excel.Application xl = new Excel.Application(); xl.Visible = false; Excel.Workbook wb = (Excel.Workbook)xl.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet; for (int row = 0; row < listView1.Items.Count; row++) { ListViewItem item = listView1.Items[row]; for (int col = 0; col < item.SubItems.Count; col++) { ws.Cells[row,col] = item.SubItems[col].Text.ToString(); // exception here //ws.Cells[row,col] […]

添加一个自定义命名空间,并通过c#openxml sdk在openxml excel中使用它

有没有一个例子来添加一个自定义名称空间 例如 xmlns:bluh = "http://www.bluhbluh.com" 在Workbook/WorkbookPart/SpreadSheetDocument级别 使用C#OpenXml SDK?

在Excel中使用不同types的信息在每一行中读取一列

我想用我编写的程序读取Excel文档,并根据读取的信息,更改我的用户界面上的某些字段,我遇到了一个有趣的问题。 我的一个专栏有可能保存4种不同types的数据。 行中的每个单元格都可能包含一个数字,一个以文本或文本forms存储的数字。 这是我用来阅读本专栏的部分代码: try { string dtTerritory = dt.Rows[0].Field<string>("Territory"); cmbTerritory.SelectedItem = dtTerritory; territory = dtTerritory; } catch { double dtTerritory = dt.Rows[0].Field<double>("Territory"); cmbTerritory.SelectedItem = dtTerritory.ToString(); territory = dtTerritory.ToString(); } 我遇到的问题是读取以文本forms存储的数字,问题是,如果数字以Excel文档forms存储在Excel工作表中,则始终以3个字符存储。 所以如果数字是3,那么如果它是46,则它被存储为“3”(3之后2个空格),它被存储为“46”(46之后1个空格)。 所以我基本上是寻找最好的解决scheme,我可以让我的程序忽略号码后发生的空间。 有任何想法吗?

如何将值(不只是百分比)添加到Excel饼图?

我有这个代码: private void WriteChartSheet() { _xlSheetChart = (Worksheet)_xlSheets.Item[2]; if (_xlSheetChart != null) { _xlSheetChart.Name = ProduceUsageChartSheetName; // Contract vs. non-Contract pie chart _xlSheetChart.Cells[1, 1] = "Contracted Items"; _xlSheetChart.Cells[1, 2] = "Non-Contracted Items"; _xlSheetChart.Cells[2, 1] = GetContractedItemsTotal(); _xlSheetChart.Cells[2, 2] = GetNonContractedItemsTotal(); ChartObjects xlCharts = (ChartObjects)_xlSheetChart.ChartObjects(Type.Missing); ChartObject contractChartObject = xlCharts.Add(0, 0, 300, 250); // left, top, width, […]