gpt4 book ai didi

c# - 类型转换 Excel 单元格

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:44 25 4
gpt4 key购买 nike

我想从 Excel 工作表生成 SQL 脚本,因此我需要知道所有单元格的类型。

因此我尝试从以下代码中的单元格中获取类型,然后在文本框中获取结果

C#代码:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using System.Windows.Forms;

namespace Export
{
internal class ExcelWorker
{
Excel.Application _xlApp = new Excel.Application();
Excel.Workbook _xlWorkBook;
Excel.Range _range;
object misValue = System.Reflection.Missing.Value;
private void Show(string value) => MessageBox.Show(value);
internal void ReadExcelFile(string path, string cell)
{
try
{
_xlWorkBook = OpenBook(_xlApp, path, false, true, false);
Excel.Worksheet sheet = _xlWorkBook.Sheets["Sheet1"] as Excel.Worksheet;
Show(string.Format("Cell {0} \n\n Cell Number Format {1}", cell, sheet.get_Range(cell).NumberFormat));
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
private static Excel.Workbook OpenBook(Excel.Application excelInstance, string fileName, bool readOnly, bool editable,
bool updateLinks)


{
Excel.Workbook book = excelInstance.Workbooks.Open(
fileName, updateLinks, readOnly,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, editable, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
return book;
}
}
}

Excel表格: excel sheet每个单元格的结果:

enter image description here

现在我不确定这是否是获得“正确”类型以将 excel 单元格值转换为确切 sql 类型的唯一方法,或者是否有更好的解决方案我不知道。

是否有更好的方法来获取每个单元格的类型,或者我应该创建一个枚举或类似的东西并映射每个可能的单元格格式?

最佳答案

您将无法获得单元格的类型。如果您想将 Excel 工作表中的数据输入数据库,请尝试转换为所需的 SQL 类型和 fromat。特别是对于日期时间,这是强制性的,因为日期时间格式取决于您的数据库设置。
小心空单元格。你必须在类型转换前检查它们。在 Office 2010 和 2013 中,空单元格为 NULL。您需要在使用 ToString() 或类似的东西之前检查它,因为这会引发异常。还要小心加倍,例如使用“,”或“。”这取决于您在 Ecxel 中的设置。

关于c# - 类型转换 Excel 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39101975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com