摘要:使用Jet.OLEDB提供程序和SQL查询,我无法从Excel表中提取一些列。原因可能是标题文本包含一些重音字符。是否可以从技术上引用列?类似于列K
或C12
而不是使用标题文本...
详细信息:实际上,可以从http://www.sukl.cz/file/80129_1_1下载特定的Excel文档 - 文档名称为DistribuceLP_2015_01.xls
(请参阅后面的处方)。它包含一些可下载和提取的公开统计信息。
下载并保存文件后,我确实提取了一些没有问题的列;
我有一个工具,它接受连接字符串,目标目录和一系列SQL命令+目标表名。它使用提取的内容生成普通的旧DBF表。包含转换描述的文本文件如下所示 - 因此您可以看到连接字符串和SELECT查询。工作表已重命名为测试A
:
connection:Provider=Microsoft.Jet.OLEDB.4.0;Data source=d:\download\DistribuceLP_2015_01.xls;Extended Properties="Excel 8.0;HDR=Yes;"
outputdir:.
----------------
test
SELECT
[Období] AS obdo,
[Typ odběratele] AS typodb,
ATC7,
[Kód SÚKL] AS kodsukl,
[Název přípravku] AS nazev,
[Doplněk názvu] AS baleni,
[Držitel registračního rozhodnutí] AS drr,
[Země] AS zeme,
[Typ pohybu] AS pohyb,
[Počet balení/M] AS pocbal,
[Cena za balení bez obch. přirážky a DPH] AS cenabal, -- !!!
[Celkem finance za všechna balení bez obch. přirážky a DPH] AS cena, -- !!!
[Počet definovaných denních dávek/balení] AS dendavek,
[Počet denních definovaných dávek/balení celkem] AS davek,
[Způsob výdeje] AS vydej
FROM [A$]
它几乎可以工作。如果我删除标有-- !!!
的行,则提取正常。两条标记的行会导致错误。我怀疑文字中带有重音字母ř,或者可能是点。
您对类似案件有一些经验吗?
答案 0 :(得分:1)
我认为您需要使用具有重音不敏感性的排序规则,因为您的目标数据库中的排序规则设置可能不同:
<s:form action="FetchData" name="userInformation">
<display:table name="usersList" id="username" form="userInformation">
<display:column property="username" title="نام کاربری" paramProperty="checkbox"/>
<display:column property="portfolioName" title="نام حساب کاربری سیستم" paramProperty="checkbox"></display:column>
<display:column property="firstName" title="نام"></display:column>
<display:column property="lastName"/>
<display:column property="fatherName"/>
<display:column property="sex"/>
<display:column property="nationalId"/>
<display:column property="phoneNumber"/>
</display:table>
</s:form>